Здравствуйте, AK107, Вы писали:
А если так?
var task = Task.Delay(TimeSpan.FromSeconds(1));
Console.WriteLine("Task: Delay started.");
task.ContinueWith(x => // 1
{
Thread.Sleep(1000);
Console.WriteLine("\tTask: ContinueWith started.");
Thread.Sleep(1000);
Console.WriteLine("\tTask: ContinueWith done.");
}, TaskContinuationOptions.ExecuteSynchronously);
Console.WriteLine("WhenAll: started.");
var whenAll = Task.WhenAll(task);
var T = whenAll.ContinueWith(x => // 2
{
Thread.Sleep(100); // 3
Console.WriteLine("\tWhenAll: ContinueWith run.");
Thread.Sleep(1000);
Console.WriteLine("\tWhenAll: ContinueWith done.");
}, TaskContinuationOptions.ExecuteSynchronously);
Console.WriteLine("WhenAll: Wait started.");
whenAll.Wait();
Console.WriteLine("WhenAll: Wait done.");
T.Wait();