Делегат и 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() отработала