Size: a a a

2020 January 30

V

Vlad in pro.net
Есть какие-то исключения для тасков что если я не пишу await их все равно ожидает если меркурий в сатурне или я просто что-то упустил
источник

K

Katz in pro.net
Зависит от внутренностей таски?
источник

V

Vlad in pro.net
источник

V

Vlad in pro.net
Сори что гружу, но я реально не понимаю в чем причина.
Я как бы в фоне хочу запустить задачу (паблиш сделать) и вернуть результат, а у меня код стоит ждет пока выполнится метод хотя я await не делю
источник

K

Katz in pro.net
Вроде бы ничего не должно блокировать. Если только я сам чего-то не знаю, или все вызываемые handlers блокируют.
источник

DP

Denis Petukhov in pro.net
Обработчики lazy жи. Может долго инициализируется первый из них.
источник

V

Vlad in pro.net
Куда покопать. Сейчас еще раз проверю, но кажется в последний раз, когда я добавли await, он ожидал и внутри обработку, как бы это правильно сказать.
Я для тестов добавил таймауты. Операция состоит из 2 частей - сначала заполняются таски данными, потом запускается их выполнение. Метод собирает эти таски и я отправляю его на заполнение через Publish, на заполнение стоит таймер 10 сек, плюс флаг передаю на запуск сразу после заполнения, пауза перед выполнением 30 сек. Запуск внутри метода заполнения данных выполнен через foreach (task) await _eventManager.publish(), тоесть в сумме время на выполнение 40 сек
источник

V

Vlad in pro.net
Сейчас у меня ожидает заполнение (10 сек) и потом возвращает
источник

AK

Aleksey Kalduzov in pro.net
Katz
Вроде бы ничего не должно блокировать. Если только я сам чего-то не знаю, или все вызываемые handlers блокируют.
Пока не будет вызван await код будет работать синхронно
источник

V

Vlad in pro.net
С await идет полностью 40 сек, вроде, тоесть понятное дело так и должно быть там везде await
источник

V

Vlad in pro.net
Но почему без него эти 10 сек ожидает первый хендлер
источник

V

Vlad in pro.net
причем он то сам тоже внутри async Task метода и там тоже await
источник

V

Vlad in pro.net
Логики вообще не вижу
источник

AK

Aleksey Kalduzov in pro.net
Vlad
Логики вообще не вижу
источник

K

Katz in pro.net
Aleksey Kalduzov
Пока не будет вызван await код будет работать синхронно
_ = Task.Delay(1000) будет выполнено синхронно?
источник

V

Vlad in pro.net
Если я правильно прочитал, то синхронный код внутри отмеченного async метода не заворачивается в ту же таску, или я просто не понял
источник

AK

Alex Kiev in pro.net
Katz
_ = Task.Delay(1000) будет выполнено синхронно?
Нет, пока внутри вызваного метода не будет авейта
источник

V

Vlad in pro.net
Вроде же если метод async - все что внутри оборачивается в таск
источник

AK

Aleksey Kalduzov in pro.net
Katz
_ = Task.Delay(1000) будет выполнено синхронно?
не о том речь - речь про то, что бы в методе Delay было переключение потока, пока не произойдет смена статуса у машины состояний
источник

AK

Aleksey Kalduzov in pro.net
Vlad
Вроде же если метод async - все что внутри оборачивается в таск
в state машину, в которой первый шаг синхронный в том же потоке выполняется
источник