Делегат и 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() отработала
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д