线程看门狗
来源:互联网 发布:网络播放量vlinkage 编辑:程序博客网 时间:2024/06/04 18:14
本模块维护开启的工作线程。如果判断该线程不能正常工作,则工作进程自杀重启。
1、使用VS2008创建一个带预编译头的控制台项目。
2、源文件中的内容:
#include "stdafx.h" #include <windows.h> #include<iostream> using namespace std; struct SThreadPara{bool m_bAlive;HANDLE m_hThread;};DWORD WINAPI FWorkThread(void *pVoid){printf("线程开始\n");SThreadPara *pPara = (SThreadPara *)pVoid;while(1){pPara->m_bAlive = true;Sleep(/*1*/6);}return TRUE;}int main( void ) { char ch; SThreadPara aPara;aPara.m_bAlive = false;aPara.m_hThread = NULL;aPara.m_hThread = CreateThread(NULL,0,FWorkThread,&aPara,0,NULL); if(NULL == aPara.m_hThread){printf("创建线程失败\n");return 1;}printf("创建线程成功\n");while(1){Sleep(3);if(!aPara.m_bAlive){//直接进程自杀好了。printf("线程有问题,进程自杀\n");cin>>ch;ExitProcess(0); return 1;/*if(!TerminateThread(aPara.m_hThread,0)){printf("终结线程失败\n");return 1;}CloseHandle(aPara.m_hThread);aPara.m_hThread = NULL;printf("终结线程成功\n");cin>>ch;aPara.m_bAlive = false;aPara.m_hThread = NULL;aPara.m_hThread = CreateThread(NULL,0,FWorkThread,&aPara,0,NULL);if(NULL == aPara.m_hThread){printf("创建线程失败\n");return 1;}printf("创建线程成功\n");*/}else{aPara.m_bAlive = false;}} cin>>ch;return 0; }
0 0
- 线程看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 看门狗
- 两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEvent(图文)!
- 第四周项目2-三角形类2
- protoc编译
- 基础学习篇-学习笔记流水账
- 【转】浅谈VB.NET中的接口 - 妖居 - 博客园
- 线程看门狗
- struts2 的tree和treenode标签(非表单标签)
- memcache研究笔记 之 item_locks锁数组
- 每天一个小程序(7)——C++中sort函数的应用
- Android事件传递机制
- 深入理解Java Class文件格式(五)
- Activity状态转换和Activity栈
- DOCTYPE 严格模式与JS严格模式
- eclipse / myeclipse 常用快捷键