llgd.net
当前位置:首页 >> MFC使用AFxBEginThrEAD创建线程时,总是在AFxIsVAl... >>

MFC使用AFxBEginThrEAD创建线程时,总是在AFxIsVAl...

不是不可以,是因为Enter, GetSafeHwnd()这个函数没有定义,其实编译错误已经提示你了。

你要在退出程序前,先正常关闭线程埃 可以在子线程内部关闭:AfxEndThread 或者在主线程强制关闭:AfxTermThread

建一个全局变量保存返回值就行了,比如返回值为整型: int nRtn; UINT MyThread(LPVOID lpParam) { nRtn = function(); return nRtn; } int main() { AfxBeginThread(MyThread,null); Sleep(nTime);//等待线程运行结束后对nRtn操作 ... }

楼猪V5啊

炫彩界面库用户来回答, 调试查看函数返回值; Pointer to the newly created thread object, or NULL if a failure occurs. MSDN说 如果失败返回空, 那么你就要看参数哪里错了. 建议你用炫彩 ,简单易用;

CWinThread* thread;//全局变量 创建多线程: thread=AfxBeginThread(RepThreadProc,this,THREAD_PRIORITY_NORMAL,0,0,NULL);// RepThreadProc为//多线程函数 多线程函数: 头文件中声明: static UINT RepThreadProc(LPVOID pParam); 源文件中...

查询MFC,SuspendThread() CSDN上谈到 “直接SuspendThread函数不能保证在何处挂起,可能有线程未退出临界区导致死锁,不太安全。 创建一个Event,需要挂起线程时,WaitForSingleObject等待,继续的时候,SetEvent ” 这个方法更安全。

工作者线程的创建 CWinThread* pThread = AfxBeginThread(ThreadFuc,&ThreadInfo) ThreadFuc 是你的线程函数,形式是这样的:UINT ThreadFuc(LPVOID pParam){ 你的处理代码; return 0;} ThreadInfo 是一个THREADPARAM类型的数据,线程函数...

线程函数比如AfxBeginThread(mainThread, (LPVOID)this,THREAD_PRIORITY_NORMAL); 那个mainthread就是一个线程函数 UINT mainThread(LPVOID pParam) {。。。。。 r eturn(0); }

自己加个bool或者int变量 线程执行函数开始代码把这个变量改个值,标示线程运行中... 该函数末尾代码把这个变量又改个值,标示线程结束,没有在运行中 获取这个变量的只,判断就知道线程的状态了

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