博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于TaskStatus状态WaitingForChildrenToComplete 的疑问
阅读量:6441 次
发布时间:2019-06-23

本文共 1361 字,大约阅读时间需要 4 分钟。

  .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

你可能感兴趣的文章
定时提醒软件-workrave
查看>>
Python连接sybase数据库
查看>>
JavaScript单线程和浏览器事件循环简述
查看>>
CSS3的自定义字体@font-face:如何将icon变成字体?
查看>>
C++学习笔记08
查看>>
Line Clampin’ (Truncating Multiple Line Text)
查看>>
阻塞与非阻塞,同步与异步
查看>>
Kali Linux信息收集之nbtscan-unixwiz
查看>>
hdu 5476 (计算几何)
查看>>
51 nod 1610 路径计数(Moblus+dp)
查看>>
通用报文解析服务的演进之路(基于磁盘目录的分布式消息消费者服务)之三...
查看>>
<Shader模块化>0.ShaderVariant和multi_compile编译Shader的多个版本
查看>>
1107 Social Clusters[并查集][难]
查看>>
js两个字符串明明一样却判断显示不相等
查看>>
简单的vector--- 2
查看>>
PLUM_LITE 系统框图
查看>>
Linux 下 HTTP连接超时
查看>>
Js中分号使用总结
查看>>
读《从一到无穷大》
查看>>
zend studio 8 注册 码
查看>>