Код после await в каком потоке продолжается? - C#

Узнай цену своей работы

Формулировка задачи:

Сначала пример:

Узнаем id главного потока Создаем новую задачу, и отдаем некоторый код на исполнение (в коде узнаем id потока задачи) После await, узнаем id текущего потока.

В случаи консольного приложения:

id главного потока - 9 id потока задачи -11 id потока после await -11

В случаи winForms приложения:

id главного потока - 9 id потока задачи -11 id потока после await - 9 Получается await в случаи консольного приложения не ждет завершения задачи, а ждет завершения кода (отправленного ему), и продолжает эту задачу после await. В случаи WinForms await ждет именно завершения задачи, а после выполняет уже в главном потоке.

Почему так происходит (от чего зависит в каком потоке продолжится)? В каком потоке по умолчанию продолжается выполняться код после await ? Как указать самому в каком потоке выполнять код после await ?

Решение задачи: «Код после await в каком потоке продолжается?»

textual
Листинг программы
await Task.Delay(0);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.462 из 5
Похожие ответы