SocketAsyncState.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. 
  2. using System.Threading;
  3. namespace Curtain.Net.Sockets.PLC
  4. {
  5. /// <summary>
  6. /// Socket异步状态
  7. /// </summary>
  8. internal class SocketAsyncState : EventWaitHandle
  9. {
  10. /// <summary>
  11. /// Socket异步状态
  12. /// </summary>
  13. public SocketAsyncState()
  14. : base(false, EventResetMode.ManualReset)
  15. {
  16. }
  17. /// <summary>
  18. /// Socket异步状态
  19. /// </summary>
  20. /// <param name="initialState"></param>
  21. public SocketAsyncState(bool initialState)
  22. : base(initialState, EventResetMode.ManualReset)
  23. {
  24. }
  25. /// <summary>
  26. /// Socket异步状态
  27. /// </summary>
  28. /// <param name="initialState"></param>
  29. /// <param name="mode"></param>
  30. public SocketAsyncState(bool initialState, EventResetMode mode)
  31. : base(initialState, mode)
  32. {
  33. }
  34. /// <summary>
  35. /// 数据
  36. /// </summary>
  37. public byte[] Data
  38. {
  39. get; set;
  40. }
  41. /// <summary>
  42. /// 数据偏移
  43. /// </summary>
  44. public int Offset
  45. {
  46. get; set;
  47. }
  48. /// <summary>
  49. /// 数据大小
  50. /// </summary>
  51. public int Size
  52. {
  53. get; set;
  54. }
  55. /// <summary>
  56. /// 结果
  57. /// </summary>
  58. public PLCResult Result
  59. {
  60. get; set;
  61. }
  62. /// <summary>
  63. /// 销毁
  64. /// </summary>
  65. /// <param name="explicitDisposing"></param>
  66. protected override void Dispose(bool explicitDisposing)
  67. {
  68. Result = null;
  69. base.Dispose(explicitDisposing);
  70. }
  71. }
  72. }