mlsb.net
当前位置:首页 >> mFC等待线程结束 >>

mFC等待线程结束

#include #include #include #include #include unsigned int __stdcall ThreadOne( void *pParam ){ printf( "thread start\n" ); Sleep( 2000 ); printf( "thread end\n" ); return 0;}int main(){ HANDLE handle = (HANDLE)_beginthreadex( N...

//放在需要创建线程的地方,如主程序 //保存线程的ID。 DWORD dwThreadID = 0; HANDLE hThread=CreateThread(NULL,0,DownloadThread,0,NULL,&dwThreadID);//创建下载线程 //全局函数 static DWORD WINAPI DownloadThread(void *pArg) { //这里写...

多线程处理这类问题可以用各种信号量或者锁解决,本质上原理都是很类似的,这里介绍一下事件信号量,另外还有互斥量,就把CreateEvent换成CreateMutex就可以了。 先说一下WaitForSingleObject这个函数,如果参数1现在是有信号的,那么这个函数立...

在线程里面来个Afxendthread().就结束了,你干嘛返回1000呀?要等待返回,在外面结束吗?你可以弄个全局布尔值,在外边控制布尔值,然后线程里面当布尔值为True或false时调用afxendthread()就结束了。别用别的结束方法。不好,这个最好。

你要把你的主要实现和主界面分开,就是用多线程,一个线程用于处理数据,主界面线程用于显示和接受用户操作,当用户按开始按钮时,开启处理线程,暂停时暂停处理线程,继续时再唤醒处理线程就行了。直接在主界面线程中sleep,肯定会造成界面没有...

建议不要强行结束还在运行中的线程,主线程结束,次线程还在运行,C++不会自动释放资源,会造成内存泄漏,造成程序的崩溃,结束主线程前必须通知次线程先结束,Sleep(1)可以释放时间片,注意利用。您可以通过CreateThread返回的HANDLE来判断线程...

代码太乱了,不看了。 关注一个函数:WaitingForSingleObject,这个应该就是你需要的东西。

还没弄好?之前和你说过了,其实就是WaitForSingleObject和CEvent,对于MFC,使用Afx方式创建线程有系列的方法可用,只要你保存了这个指针或句柄。 给你找了一段例程序,这里包含了判断和外部结束的全部方法,你不一定要创建这个类,只要保留CWi...

应该说,程序的关闭处理还是不完善。多线程,应该是在主线程关闭前,在合理的位置抛出消息给子线程,声明程序结束,子线程中,如果有对主线程的访问,也应该先判断主程序的合法性,并根据异常结果进行处理,如果这些没有处理好,是会发生你所说...

应该不会这样埃把按钮事件代码和多线程代码贴出来看看

网站首页 | 网站地图
All rights reserved Powered by www.mlsb.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com