多线程程序防止内存泄漏的疑惑? 我在关闭窗口的时候可以通知线程结束吗?一般用什么机制? 像eMule这样的软件,在关闭程序的时候,会通知所有的子线程结束,(应该是中止完毕后),然后关闭主窗口,大家有什么好的方案么?谢谢!最好提供示例源代码! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比如:主线程退出代码:exitprocess(){ PostThreadMessage(dwThreadID,EXIT_THREAD,NULL,NULL) ; waitforsingleobject(hThread,INFINTE) ; closehandle(hThread) ; ...//继续执行退出代码 }dword __stdcall workthread(LPARAM lParam){ ... while(::PeekMessage(&msg,NULL,NULL,NULL,NULL)) { if(msg.message == EXIT_THREAD) { break ;//如果接收到退出本线程消息就退出 } } ... return NULL ;}一般上面的机制就可以了。 你可以使用Event对象来通知线程HANDLE hEvent;hEvent = CreateEvent(NULL, TRUE, NULL, NULL);UINT ThreadProc(LPVOID lparam){ ........... ........... if(WaitForSingleObject(hEvent,500)!= WAIT_TIMEOUT) return 0; .......... .......... return 0;}当你想结束线程的时候调用SetEvent(hEvent)即可 请问,工具条是否可以加载像png这样的半透明格式图片? 在简体中文系统下要读取繁体中文的文件的文字,怎么读取 [再次100分]顶帖即送分~~GOOGLE TALK的开源码无错测试后需要调用执行文件!有谁知道!! 用户密码验证smtp 在Static控件上绘图的2个问题,一定给分 少了文件,VC设置中需要改动什么? 弱问:请问如何实现多个线程 求教主分区表在硬盘上的位置 哪位作过游戏啊(大型的)?怎么个原理?用什么语言?有没有类似的文章介绍啊?谢谢 在线等待!!! 如果别人说你已经提交的代码有问题? 怎样在一个Dll中使用另一个Dll中导出的Class?
主线程退出代码:
exitprocess()
{
PostThreadMessage(dwThreadID,EXIT_THREAD,NULL,NULL) ;
waitforsingleobject(hThread,INFINTE) ;
closehandle(hThread) ;
...//继续执行退出代码
}dword __stdcall workthread(LPARAM lParam)
{
...
while(::PeekMessage(&msg,NULL,NULL,NULL,NULL))
{
if(msg.message == EXIT_THREAD)
{
break ;//如果接收到退出本线程消息就退出
}
}
...
return NULL ;
}一般上面的机制就可以了。
UINT ThreadProc(LPVOID lparam)
{
...........
...........
if(WaitForSingleObject(hEvent,500)!= WAIT_TIMEOUT)
return 0;
..........
..........
return 0;
}当你想结束线程的时候调用SetEvent(hEvent)即可