因为我了解Task
嵌套任务的上下文,所以我真的不明白-为什么在第二张打印之前先打印第三张?
即使使用了Task.WaitAll(t)
,它也会在第二行之前打印第三行。
码:
public static void Main()
{
Task t = new Task(
() =>
{
Thread.Sleep(2000);
Console.WriteLine("1st print...");
});
t.ContinueWith(
x =>
{
Thread.Sleep(2000);
Console.WriteLine("2nd print...");
},
TaskContinuationOptions.OnlyOnRanToCompletion);
t.Start();
Task.WaitAll(t);
Console.WriteLine("3rd print...");
Console.Read();
}
输出:
您还需要等待继续:
Task t2 = t.ContinueWith( /* .. */ );
Task.WaitAll(new [] { t, t2 } );
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句