TaskStatus

作者:追风剑情 发布于:2017-10-13 14:29 分类:C#

官方示例:任务状态

  1. using System;
  2. using System.Threading;
  3. using System.Threading.Tasks;
  4.  
  5. namespace TaskTest
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. CancellationTokenSource cts = new CancellationTokenSource();
  12.  
  13. // Wait on a single task with a timeout specified.
  14. Task taskA = Task.Run(() => Thread.Sleep(2000));
  15. try
  16. {
  17. taskA.Wait(1000, cts.Token); // Wait for 1 second.
  18. bool completed = taskA.IsCompleted;
  19. Console.WriteLine("Task A completed: {0}, Status: {1}",
  20. completed, taskA.Status);
  21. if (!completed)
  22. Console.WriteLine("Timed out before task A completed.");
  23.  
  24. Console.ReadLine();
  25. }
  26. catch (AggregateException)
  27. {
  28. Console.WriteLine("AggregateException in taskA.");
  29. }
  30. catch (OperationCanceledException e)
  31. {
  32. Console.WriteLine("OperationCanceledException in taskA.");
  33. }
  34. }
  35. }
  36. }

运行测试

1111.png


TaskStatus枚举类

  1. namespace System.Threading.Tasks
  2. {
  3. // 摘要:
  4. // 表示 System.Threading.Tasks.Task 的生命周期中的当前阶段。
  5. public enum TaskStatus
  6. {
  7. // 摘要:
  8. // 该任务已初始化,但尚未被计划。
  9. Created = 0,
  10. //
  11. // 摘要:
  12. // 该任务正在等待 .NET Framework 基础结构在内部将其激活并进行计划。
  13. WaitingForActivation = 1,
  14. //
  15. // 摘要:
  16. // 该任务已被计划执行,但尚未开始执行。
  17. WaitingToRun = 2,
  18. //
  19. // 摘要:
  20. // 该任务正在运行,但尚未完成。
  21. Running = 3,
  22. //
  23. // 摘要:
  24. // 该任务已完成执行,正在隐式等待附加的子任务完成。
  25. WaitingForChildrenToComplete = 4,
  26. //
  27. // 摘要:
  28. // 已成功完成执行的任务。
  29. RanToCompletion = 5,
  30. //
  31. // 摘要:
  32. // 该任务已通过对其自身的 CancellationToken 引发 OperationCanceledException 对取消进行了确认,此时该标记处于已发送信号状态;或者在该任务开始执行之前,已向该任务的
  33. // CancellationToken 发出了信号。 有关更多信息,请参见任务取消。
  34. Canceled = 6,
  35. //
  36. // 摘要:
  37. // 由于未处理异常的原因而完成的任务。
  38. Faulted = 7,
  39. }
  40. }


标签: C#

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号