started, proceeding in 1
Task initiated on thread 3
Task finished on thread 3
1: Async task finished on thread 3
Starting method2 from 1
Всё равно не понимаю, растолкуйте пожалуйста. Таск инициирован в потоке 3, выполнен и закончен тоже в потоке 3. Более того, окончание Method1 тоже происходит в потоке 3. Так значит Task.Run всё-таки перекидывает свои эвейты в другие потоки, отличные от главного?
private static async Task AsyncTestMethod()
{
Console.WriteLine($"Task initiated on thread {Thread.CurrentThread.ManagedThreadId}");
Thread.Sleep(10000);
Console.WriteLine($"Task finished on thread {Thread.CurrentThread.ManagedThreadId}");
}
private static async Task Method1()
{
Console.WriteLine($"1: Starting async task on thread {Thread.CurrentThread.ManagedThreadId}");
await Task.Run(async () => await AsyncTestMethod());
Console.WriteLine($"1: Async task finished on thread {Thread.CurrentThread.ManagedThreadId}");
}
Ну, ты учитывай, что в моей проге там не было контекста синхронизации, который бы требовал передавать await обратно в UI-поток.
не до конца понятно, что автор хотел сказать
Обсуждают сегодня