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

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

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

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

楼猪V5啊

是否需要释放是由m_pThread->m_bAutoDelete控制的。 你设置它为TRUE就不需要,否则就需要。 另外,线程函数要让它自然结束。

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

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

是线程自己结束自己还是外部调用来结束这个线程? 如果你的线程是从CWinThread继承出来的,结束自己就用AfxEndThread,外部调用的话可以用PostThreadMessage(m_nThreadID, WM_QUIT,0,0);给这个线程发送消息,线程就会结束的,其中的m_nThreadID...

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

线程函数比如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