使用一个任务开启线程,这个任务中再开启一个子任务,然而理论上父任务会在子任务结束之后,状态才会变为 RunToCompletion,子任务结束之前因该为WaitingForChildrenToComplete,然而我写出的代码运行后没有等待子任务的状 态,直接父任务结束之后父任务状态就变为RunToCompletion,没有父子任务关联了。难道现在C#去掉父子任务了嘛 源码: private static void Example10() { _parentTaskCheck = true; var parent = new Task(Example10_ParentTask); parent.Start(); while (_parentTaskCheck) { Console.WriteLine("parent task status: " + parent.Status); Thread.Sleep(500); } Console.WriteLine(parent.Status==TaskStatus.WaitingForChildrenToComplete); } private static void Example10_ParentTask() { Console.WriteLine("parent task is running."); var child = new Task(Example10_ChildTask); child.Start(); Thread.Sleep(1000); Console.WriteLine("parent task is over."); } private static bool _parentTaskCheck; private static void Example10_ChildTask() { Console.WriteLine("child task is running."); Thread.Sleep(5000); Console.WriteLine("child task is over."); _parentTaskCheck = false; } 输出结果: parent task is running. parent task status: WaitingToRun child task is running. parent task status: Running parent task is over. parent task status: Running parent task status: RanToCompletion parent task status: RanToCompletion parent task status: RanToCompletion parent task status: RanToCompletion parent task status: RanToCompletion parent task status: RanToCompletion parent task status: RanToCompletion child task is over. RanToCompletion