1 private readonly ManualResetEvent _resumeEvent = new ManualResetEvent(false); 2 private volatile bool _blnPaused; //记录运行状态是否暂停 3 4 /// <summary> 5 /// 暂停 6 /// </summary> 7 public void Pause() 8 { 9 _resumeEvent.Reset(); 10 _blnPaused = true; 11 } 12 13 /// <summary> 14 /// 重启 15 /// </summary> 16 public void Resume() 17 { 18 _blnPaused = false; 19 _resumeEvent.Set(); 20 } 21 22 ... 23 24 线程方法中添加下面的代码 25 26 if (_blnPaused) //如果暂停则等待 27 { 28 _resumeEvent.WaitOne(); 29 } 30 else 31 { 32 }
本文详细介绍了如何使用C#中的ManualResetEvent实现线程的暂停与重启功能,通过设置私有变量_blnPaused和_resumeEvent,实现线程状态的控制。当线程需要暂停时,调用Pause()方法重置事件,线程进入等待状态;当需要重新启动线程时,调用Resume()方法设置事件,线程从等待状态恢复。
2181

被折叠的 条评论
为什么被折叠?



