关于TaskStatus状态WaitingForChildrenToComplete 的疑问
生活随笔
收集整理的這篇文章主要介紹了
关于TaskStatus状态WaitingForChildrenToComplete 的疑问
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
.net framework4.0 新增了Task這個類,其中有個枚舉叫TaskStatus,但是我始終無法獲得其中的一個叫WaitingForChildrenToComplete的狀態:
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace ConsoleApplicationTask
{
class Program
{
static void Main(string[] args)
{
var parent = new Task(ParentTask);
parent.Start();
Thread.Sleep(2000);
Console.WriteLine(parent.Status);
Thread.Sleep(6000);
Console.WriteLine(parent.Status);
Console.ReadLine();
}
static void ParentTask()
{
Console.WriteLine("task id {0}", Task.CurrentId);
Thread.Sleep(1000);
Console.WriteLine("parent started child");
var child = new Task(ChildTask);
child.Start();
}
static void ChildTask()
{
Console.WriteLine("child");
Thread.Sleep(5000);
Console.WriteLine("child finished");
}
}
}
兩次parent.Status 都返回 RanToCompletion.為何,照理說第一次應該返回WaitingForChildrenToComplete。
后來發現原來實現父子任務的關系,子任務需要設置一個option來附屬到父任務上,如下:
var child = new Task(ChildTask, TaskCreationOptions.AttachedToParent);
這樣第一次parent.Status就返回WaitingForChildrenToComplete狀態了。
?
轉載于:https://www.cnblogs.com/zhuzhenjesse/archive/2011/10/11/2207521.html
總結
以上是生活随笔為你收集整理的关于TaskStatus状态WaitingForChildrenToComplete 的疑问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VMware View 5.0从菜鸟到高
- 下一篇: 实用算法实现-第6篇线段树