关于网友提出的“ 我要用MFC做一个多线程的系统”问题疑问,本网通过在网上对“ 我要用MFC做一个多线程的系统”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 我要用MFC做一个多线程的系统
描述: 我要做MFC的多线程编程,但我没有做过多线程编程的。
以前用的都不是多线程的。请教各位高手谁有相关的代码提供一下吗?
解决方案1:
up
解决方案2: 去VC知识库上看看
http://www.vckbase.com/document/viewdoc/?id=1704
http://www.vckbase.com/document/viewdoc/?id=1706
解决方案3: ::AfxBeginThread((::AFX_THREADPROC)函数名,(LPVOID)参数指针)
如果是调用普通函数例如
void a123()
{cout<<"我好靓仔,上班偷赖,帮公司发发广告冲冲IP:www.173eg.com";}
void abc(int i)
{a123();}
那么就是这样用
int ii=10;
::AfxBeginThread((::AFX_THREADPROC)abc,(LPVOID)&ii);
如果函数在类里面例如
class ABC
{
...
void a123(){cout<<"我好靓仔,上班偷赖,帮公司发发广告冲冲IP:www.173eg.com";}
static void abc(LPVOID*pp);
void b123();
}
那么就是这样用
void abc(LPVOID*pp)
{
ABC*p=(ABC*)pp;
p->a123();
}
void ABC::b123()
{
AfxBeginThread((::AFX_THREADPROC)abc,(LPVOID)this);
}
上班偷赖,帮公司发发广告冲冲IP:www.173eg.com
解决方案4:
UP
解决方案5: MFC做的话,尽量不要作CreateThread,而是用_beginthread之类的函数,另外,很多MFC类并不是线程安全的,所以最好不要将这些类对象的指针传给线程,而尽量用句柄等安全的。
解决方案6: 多线程需要注意的就是同步问题,可以使用临界区(CCriticalSection),事件对象(CEvent),互斥对象(CMutex)等解决
创建线程可以使用CreateThread,AfxBeginThread
或用SDK的_beginthread,_beginthreadex等,MSDN有详细的解释及例子可供参考
以上介绍了“ 我要用MFC做一个多线程的系统”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3308833.html