nun*_*unu 6 .net c# multithreading task-parallel-library c#-4.0
由于我理解Task嵌套任务的上下文,我真的不明白 - 为什么第二次打印之前的第三次打印?
即使我已经使用过Task.WaitAll(t),它也会在第二行之前打印第3行.
码:
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();
}
Run Code Online (Sandbox Code Playgroud)
输出:

你还需要等待延续:
Task t2 = t.ContinueWith( /* .. */ );
Task.WaitAll(new [] { t, t2 } );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2781 次 |
| 最近记录: |