我开始在 C# 中使用任务。我正在尝试执行此代码。
private static void CreateSubtask() {
Task<Int32[]> parent = Task.Run(() =>
{
var results = new Int32[3];
new Task(() => results[0] = 0,
TaskCreationOptions.AttachedToParent).Start();
new Task(() => results[1] = 1,
TaskCreationOptions.AttachedToParent).Start();
new Task(() => results[2] = 2,
TaskCreationOptions.AttachedToParent).Start();
return results;
});
var finalTask = parent.ContinueWith(
parentTask =>
{
foreach (int i in parentTask.Result)
Console.WriteLine(i);
});
finalTask.Wait();
}
finalTask
仅在父级完成后运行,Task
并且Task
在所有三个子级都完成时父级完成。您可以使用它来创建非常复杂Task
的层次结构,这些层次结构将完成您指定的所有步骤。
我从执行中得到的是三行内容:
0
0
0
我原以为他们会
0
1
2
我对吗?