powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / await, ConfigureAwait(true)
18 сообщений из 18, страница 1 из 1
await, ConfigureAwait(true)
    #38793903
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
async Task F1()
{
    // UI thread
   await F2().ConfigureAwait(false);
   // Thread Pool Thread
   await F3().ConfigureAwait(true); // Требуется продолжение в UI thread
   // Но нет, продолжение в Thread Pool Thread
}


Кто виноват, что делать?
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38793907
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если требуется продолжение в UI thread, бери диспетчер и инвочься в нём. Ась?
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38793911
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЕсли требуется продолжение в UI thread, бери диспетчер и инвочься в нём. Ась?Это и ежу понятно. Можно явно вызвать Task.ContinueWith. Можно разделить метода на два метода:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
async Task F1()
{
    // UI Thread
   await F2();
   // UI Thread
}

async Task F2()
{
    await F3().ConfigureAwait(false);
    // Thread Pool Thread
}


Но почему нет реакции на ConfigureAwait(true)? Трудно запомнить SynchronizationContext в начале метода и использовать внутри метода?
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38793914
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И накой вообще этот метод ConfigureAwait? Трудно было добавить два оператора: syncawait и await ?
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38793915
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, у чему нытьё, если мы и так оба знаем, как безгеморно решить задачу в UI потоке? Решил просто погундеть? )))
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38793916
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Куда Хейлсберг смотрел? Сдаёт старик...
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38793917
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К, у чему нытьё, если мы и так оба знаем, как безгеморно решить задачу в UI потоке? Решил просто погундеть? )))Я требую справедливости!

зы: Это мне надо в ASP.Net, чтобы в продолжении был HttpContext.
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38793918
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кзы: Это мне надо в ASP.Net, чтобы в продолжении был HttpContext.
http://stackoverflow.com/questions/13489065/best-practice-to-call-configureawait-for-all-server-side-code
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38793922
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кзы: Это мне надо в ASP.Net, чтобы в продолжении был HttpContext.
http://stackoverflow.com/questions/13489065/best-practice-to-call-configureawait-for-all-server-side-code Это я в курсе. Вопрос в другом. Как через ConfigureAwait вернуть контекст синхронизации? Хотя, кого я обманываю - никак. Остаётся надеяться на чудо - вдруг я не прав и способ есть.
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38793923
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Накой тогда ConfigureAwait( true ), если он ни на что не влияет?
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38793980
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ККак через ConfigureAwait вернуть контекст синхронизации?
А зачем? :)

Алексей КНакой тогда ConfigureAwait( true ), если он ни на что не влияет?
А зачем тебе ConfigureAwait(тру)?
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38794004
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей ККак через ConfigureAwait вернуть контекст синхронизации?
А зачем? :)Чтобы поиметь HttpContext в продолжении.

МСУАлексей КНакой тогда ConfigureAwait( true ), если он ни на что не влияет?
А зачем тебе ConfigureAwait(тру)?А зачем он сделан? Бесит.
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38795870
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кзы: Это мне надо в ASP.Net, чтобы в продолжении был HttpContext.
В asp.net нет UI thread, есть основной, но это не тоже самое, что UI thread в winforms или wpf.
Используй старый добрый ThreadStaticAttribute и передавай HttpContext через замыкание.
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38796198
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВАлексей Кзы: Это мне надо в ASP.Net, чтобы в продолжении был HttpContext.
В asp.net нет UI thread, есть основной, но это не тоже самое, что UI thread в winforms или wpf.Я в курсе.
ЕвгенийВИспользуй старый добрый ThreadStaticAttribute и передавай HttpContext через замыкание.Не самое удачное решение. Но я знаю как сделать, вопрос не в этом.
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38796380
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько пользовался await, если вызов начинался с UI-потока, то и продолжение было в нём (или HttpContext). Я даже помню особенность, что если при использоании старого кода без await'ов при начале вызова из STA по ошибке поставить Task.Wait так, что он будет в STA-потоке, то получается dead lock - оператор await здесь не обрабатывает тот момент, что STA поток начинает ждать сам себя.
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38796408
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81Сколько пользовался await, если вызов начинался с UI-потока, то и продолжение было в нём (или HttpContext). Я даже помню особенность, что если при использоании старого кода без await'ов при начале вызова из STA по ошибке поставить Task.Wait так, что он будет в STA-потоке, то получается dead lock - оператор await здесь не обрабатывает тот момент, что STA поток начинает ждать сам себя.Обращаем внимание на ConfigureAwait(false) в первом сообщении топика.
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38796456
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КIlya81Сколько пользовался await, если вызов начинался с UI-потока, то и продолжение было в нём (или HttpContext). Я даже помню особенность, что если при использоании старого кода без await'ов при начале вызова из STA по ошибке поставить Task.Wait так, что он будет в STA-потоке, то получается dead lock - оператор await здесь не обрабатывает тот момент, что STA поток начинает ждать сам себя.Обращаем внимание на ConfigureAwait(false) в первом сообщении топика.
Это да, смысл этой строки здесь из сообщения мне не особенно понятен, в смысле что мешает не использовать подобных настроек.
...
Рейтинг: 0 / 0
await, ConfigureAwait(true)
    #38796469
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81Алексей Кпропущено...
Обращаем внимание на ConfigureAwait(false) в первом сообщении топика.
Это да, смысл этой строки здесь из сообщения мне не особенно понятен, в смысле что мешает не использовать подобных настроек.С одной стороны хочется, чтобы работало быстрее, с другой - спортивный интерес.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / await, ConfigureAwait(true)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]