c# AutoResetEvent 控制线程暂停,恢复的问题

saybookcat 2013-03-06 01:34:35

public delegate void WorkThreadHandler();

public class WorkThread
{
public event WorkThreadHandler OnWorkdThreadEvent;

EventWaitHandle _wh = new AutoResetEvent(false);
Thread _worker;
private bool _isRun=false;

public void DoWork()
{
while (true)
{
if (_isRun)
{
WorkThreadHandler handler = OnWorkdThreadEvent;
if (handler != null) handler();
}
else
{
_wh.WaitOne();
}
}
}

public void Start()
{
_worker = new Thread(DoWork);
_worker.Start();
}

public void Resume()
{
_isRun = true;
_wh.Set();
}

public void Suspend()
{
_isRun = false;
_wh.WaitOne();
}

public void Stop()
{
_isRun = true;
_wh.Close();
}
}

不想采用过时的Suspend,Resume来控制线程,自己写了如上的一个类
可是不知道为什么通过对应的方法无法起到控制的作用....
求解。
...全文
111 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxingmin 2013-03-06
  • 打赏
  • 举报
回复

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧