110,552
社区成员
发帖
与我相关
我的任务
分享
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();
}
}