用事件判定线程的结束与否
2014-12-25 17:12
232 查看
本文由 代码助手软件 整理发布 内容与本软件无关
更惬意的读、更舒心的写、更轻松的发布
//启动线程时,若正在运行,则先关闭之
结束程序时 关闭线程
更惬意的读、更舒心的写、更轻松的发布
HANDLE g_hTic1=CreateEvent(NULL,TRUE,TRUE,NULL); //自动复原 有信号
UINT Tic1(LPVOID pTView) { ResetEvent (g_hTic1);//重置为无信号 CMyView *pView=(CMyView *)pTView; int nSeconds=0; int nNeedSeconds=pView->m_nSecond1; int nLeftMinite=0; int nLeftSeconds=0; while(nSeconds<=nNeedSeconds&&!pView->m_bStopTic1) { Sleep (1000); nSeconds++; nLeftMinite=(nNeedSeconds-nSeconds)/60; nLeftSeconds=(nNeedSeconds-nSeconds)%60; pView->ChangeDaojishi (pView->pDaojishi1,nLeftMinite,nLeftSeconds); pView->InvalidateLeft (); } SetEvent(g_hTic1); //有信号 return 1; }
//启动线程时,若正在运行,则先关闭之
m_bStopTic1=TRUE; WaitForSingleObject (g_hTic1,INFINITE); //线程结束执行时, 可能有阻塞 如执行 pctr-> 及 SetWindowText 要注意判断 m_bStopTic1=FALSE; m_nSecond1=nSeconds; AfxBeginThread(Tic1,this);
结束程序时 关闭线程
~CIView() { //AfxMessageBox (L"析构"); m_bStopTic1=TRUE; WaitForSingleObject (g_hTic1,INFINITE); }
相关文章推荐
- 通过Event事件正确结束线程
- c# 线程池中的所有线程结束之后执行的事件
- 如果想用一个事件控制多个线程结束,那么这个事件要手动复位
- 以事件通知线程结束,并等待线程安全退出
- AfxBeginThread创建和事件对象结束线程的方法
- 通过Event事件正确结束线程
- 【引用】如何结束线程运行(转)
- SQL Server 无法生成 FRunCM 线程。请查看 SQL Server 错误日志和 Windows 事件日志(转)
- mysql批量结束线程
- android 退出程序 结束线程
- Java如何等待子线程执行结束
- Java:多线程等待所有线程结束(CountDownLatch/CyclicBarrier) .
- java程序中,如何安全的结束一个正在运行的线程?
- Win32线程——等待另一个线程结束
- java程序中,如何安全的结束一个正在运行的线程?interrupt()
- sql server (mssqlserver)无法启动,事件查看器提示SQL Server 无法生成 FRunCM 线程
- android 中多个线程处理完成触发一个事件如何设计
- JS一个非常经典的问题:在遍历数组时对DOM监听事件,索引值将始终等于遍历结束后的值
- 进程退出线程即结束的代码验证
- 怎么知道_beginthreadex开始的线程被结束