Делегат и async - выполнится ли функция в потоке? - C#
Формулировка задачи:
Всем привет. Подскажите, пожалуйста, функция b() выполняется в выделенном потоке или нет? Если "нет", то как сделать "да"?
Результат:
using System; using System.Threading; using System.Threading.Tasks; namespace TestAsyncAwait { class Program { public delegate void MyDelegate(); public static void Main() { Console.WriteLine("Главный поток: #" + Thread.CurrentThread.ManagedThreadId); MyDelegate d = new MyDelegate(a); d.Invoke(); Console.ReadLine(); } public static async void a() { Console.WriteLine("a() поток: #" + Thread.CurrentThread.ManagedThreadId); await b(); Console.WriteLine("b() отработала"); } public static async Task<bool> b() { Console.WriteLine("b() поток: #" + Thread.CurrentThread.ManagedThreadId); await Task.Delay(5000); return true; } } }
Главный поток: #9 a() поток: #9 b() поток: #9 b() отработала
Решение задачи: «Делегат и async - выполнится ли функция в потоке?»
textual
Листинг программы
Главный поток: #9 a() поток: #9 b() поток: #9 1 2 3 4 5 6 7 8 9 10 b() отработала
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д