WorkItem.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading;
  6. using System.Threading.Tasks;
  7. namespace ProjectBase.Data.Threading
  8. {
  9. /// <summary>
  10. /// WorkItem的储存指定的WaitCallback和用户状态对象,如当前的ExecutionContext对象一样。
  11. /// </summary>
  12. public sealed class WorkItem
  13. {
  14. private WaitCallback _Callback;
  15. private object _State;
  16. private ExecutionContext _Context;
  17. /// <summary>
  18. /// 构造函数
  19. /// </summary>
  20. internal WorkItem(WaitCallback callback, object state, ExecutionContext context)
  21. {
  22. _Callback = callback;
  23. _State = state;
  24. _Context = context;
  25. }
  26. #region 属性
  27. /// <summary>
  28. /// 线程池线程要执行的一个回调方法
  29. /// </summary>
  30. public WaitCallback Callback { get { return _Callback; } }
  31. /// <summary>
  32. /// 调方法要使用的一个对象,其中包含的信息
  33. /// </summary>
  34. public object State { get { return _State; } }
  35. /// <summary>
  36. /// 当前线程的执行上下文对象
  37. /// </summary>
  38. public ExecutionContext Context { get { return _Context; } }
  39. #endregion
  40. }
  41. /// <summary>
  42. /// WorkItem的对象执行状态
  43. /// </summary>
  44. public enum WorkItemStatus
  45. {
  46. /// <summary>
  47. /// 项目执行完毕
  48. /// </summary>
  49. Completed,
  50. /// <summary>
  51. /// 项目是目前在执行队列
  52. /// </summary>
  53. Queued,
  54. /// <summary>
  55. /// 该项目目前正在执行
  56. /// </summary>
  57. Executing,
  58. /// <summary>
  59. /// 项目被中止
  60. /// </summary>
  61. Aborted
  62. }
  63. }