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来控制线程,自己写了如上的一个类
可是不知道为什么通过对应的方法无法起到控制的作用....
求解。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货