线程的返回码是0xcdcdcdcd? 所以在重载InitInstance()函数时 return FALSE?为什么要这么干呢?----这样你不会成功.你干吗不直接用一个Worker Thread呢,如果你不要消息循环. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 之所以这么做,是因为在InitInstance中调用了很多自己定义的函数,流程也很复杂,我想把它们放在一起便于管理。 我看有些书上说,在InitInstance中完成操作之后如果return FALSE 就会避免进入消息循环,return TRUE则会进入消息循环。 你这样做,线程就没有意义了。不想要消息循环,可以用CreateThread,_beginthread/_beginthreadex创建线程。如果InitInstance返回FALSE表示线程初始化失败,CWinThread将会终止线程。如果一定要用CWinThread,而且也不进入消息循环,可以这样用:1、重载CWinThread::Run函数,并且不调用基类的Run()(基类的Run()包含了消息循环)。2、使用CWinThread(AFX_THREADPROC pfnThreadProc, LPVOID pParam)创建线程,其中pfnThreadProc是线程函数入口指针,pParam是传递给pfnThreadProc的参数:UINT MyThreadProc( LPVOID pParam ); //pfnThreadProc的原型3、在你重载的CWinThread创建前把m_pfnThreadProc, m_pThreadParams两个成员变量赋成有效值,只要m_pfnThreadProc的值不是NULL,CWinThread就不会进入消息循环。 线程WaitForSingleObject函数疑惑 求一个基于MFC的OpenGL的连接方法 打印条形码 Barcode 控件的问题 VC中怎么做铃声编辑啊? 100分在线等ADO连接数据库问题?? 请问一个简单的问题。100分!!!!!! COM使用中的一个问题 请问如何用MSXML解读XML文件?三天内给分! 关于网络视频、音频传输中的共享冲突等等研究::: 怎样从WM_KEYDOWN消息的wParam(就是那个虚拟键值)参数获取输入的ASCII码值?有什么函数可以用来做这个转换? 菜鸟的郁闷 如何将线性内存地址转换为相对应的物理内存地址?
我看有些书上说,在InitInstance中完成操作之后如果return FALSE 就会避免进入消息循环,return TRUE则会进入消息循环。
不想要消息循环,可以用CreateThread,_beginthread/_beginthreadex创建线程。
如果InitInstance返回FALSE表示线程初始化失败,CWinThread将会终止线程。
如果一定要用CWinThread,而且也不进入消息循环,可以这样用:
1、重载CWinThread::Run函数,并且不调用基类的Run()(基类的Run()包含了消息循环)。
2、使用CWinThread(AFX_THREADPROC pfnThreadProc, LPVOID pParam)创建线程,其中pfnThreadProc是线程函数入口指针,pParam是传递给pfnThreadProc的参数:
UINT MyThreadProc( LPVOID pParam ); //pfnThreadProc的原型
3、在你重载的CWinThread创建前把m_pfnThreadProc, m_pThreadParams两个成员变量赋成有效值,只要m_pfnThreadProc的值不是NULL,CWinThread就不会进入消息循环。