8.2.Task

本文深入探讨了C#中Task并行执行机制,详细解释了Task从创建到执行完毕的状态变化过程,包括waitingForActivation、waitingToRun、running、waitingforchildrentocomplete等状态,以及TaskCreationOptions和TaskStatus枚举的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. Task.Run()
    StackCrawlMark stackMark=StackCrawlMark.LookForMyCaller;
    return Task.InternalStartNew(null,action,null,default(CancellationToken),TaskScheduler.Default,TaskCreationOptions.DenyChildAttach,InternalTaskOptions.None,ref stackMark);

  2. Task.Factory
    private readonly static TaskFactory s_factory=new TaskFactory();
    return s_factory;

  3. TaskFactory.StartNew()
    StackCrawlMark stackMark=StackCrawlMark.LookForMyCaller;
    Task currTask=Task.InternalCurrent;
    return Task.InternalStartNew(currTask,action)

  4. TaskFactory.GetDefaultScheduler(Task currTask)
    if(m_defaultScheduler!=null)return m_defaultScheduler;
    return currTask.ExecutingTaskScheduler;
    return TaskScheduler.Default;

Task.cs 7309行

1. internal class Shared

2. public enum TaskStatus

1. created   //已创建没有列入计划执行
2. waitingForActivation     //等待.net加入加入计划
3. waitingToRun             //已列入计划,但是还未执行
4. running                  //正在执行但是没有激素
5. waitingforchildrentocomplete   //任务执行完毕,隐式等待子任务的完成
6. runtocompletion  //任务全部顺利执行完毕
7. canceled         //手动跑出OperationCanceledException 异常停止task
8. faulted          //发生任何异常导致任务结束

3. Task

4. internal class SystemThreadingTasks_TaskDebugView

5. internal class ParallerForReplicatingTask

6. internal class ParallerForReplicaTask

7. public enum TaskCreationOptions

1. None
2. PreferFairness
3. LongRunning
4. AttachedToParent
5. DenyChildAttach
6. HideScheduler
7. RunContinuationsAsynchronously

8. public enum InternalTaskOptions

9. public enum TaskCountinuationOptions

10. internal class StackGuard

转载于:https://www.cnblogs.com/zhangrCsharp/p/7695589.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值