求标准 可靠 迅速的销毁线程的方法程序启动时,建立线程,退出时,要销毁线程.
线程是像视频预览线程这样的,不退出就永远运行的线程.
1. TerminateThread
2. ........
线程是像视频预览线程这样的,不退出就永远运行的线程.
1. TerminateThread
2. ........
解决方案 »
- 对话框 换肤
- 窗口分隔条的问题
- 请问VC工作区中加入了多个工程,我要去掉一个或几个怎么弄?
- 【求助】我不要跑…… 我只想学走
- 请问怎么用CreateFile WriteFile创建与写入一个文件,急!!!
- 请问如何在程序当中指定project->setting里面的general选项不使用microsoft foundation classes为not using mfc,
- 窗口(或对话框)一显示后,就执行的代码应该写在何处?
- 从并口上读到的图形数据不知道该怎么显示成一幅图形出来(图形原是曲线图)
- 请问是什么运算符?高分求救
- 菜鸟之LPTSTR问题
- tabctrl显示图片的问题
- 今天遇到一个怪问题,VC 一编译(BUILD ,REBUILD)就黑屏,当黑屏时我 ALT+ENTER 发现一个VCSPAWN.EXE 控制
别的就TerminateThread
GetExitCodeThreadWaitForSingleObject
ExitThread
如果楼主是希望优雅地控制线程的退出,那么请参考如下。推荐的方式:
1.在你的进程创建线程之前,请先创建一个Event对象(Using CreateEvent);
2.创建你的线程;
3.每一个创建好的线程都去监测上述事件对象的状态(可以调用WaitForSingleObject函数,并将等待超时值设定为0);
4.如果你的主线程希望那些线程退出时,请直接SetEvent上述事件对象;
5.当监测到事件对象处于有信号状态时(也就是WaitSingleObject函数返回WAIT_OBJECT_0时),上述线程退出。
1:挂起目标线程 SuspendThread(hThread)
2:获取目标线程的CPU上下文信息
API:GetThreadContext(hThread,&THREADCONTEXT)
3:修改2中返回的THREADCONTEXT结构中指令地址一项,把
它改成自己写的函数地址 _safe_exit:
void _safe_exit()
{
__endthreadex(0);
}
4:唤醒目标线程 ResumeThread(hThread)
5:等待目标线程结束后关闭线程句炳
WairForSingleObject(hThread,INFINITE)
CloseHandle(hThread)LZ按照我的思路试试吧,应该可以的,但要注意,
如果线程中存在UI消息队列,则__endthreadex(0);
有可能会阻塞。
它改成自己写的函数地址 _safe_exit:
void _safe_exit()
{
__endthreadex(0);
}
然后调用 SetThreadContext(hThread,&THREADCONTEXT)