mfc中如何创建线程
请高手指教一下,如何在新建的基于对话框的mfc中为一个按钮创建一个线程,就是最简单的那种,小弟刚刚开始学,请高手赐教,最好能把具体的函数写出来,小弟感激不尽,是在vs20...
请高手指教一下,如何在新建的基于对话框的mfc中为一个按钮创建一个线程,就是最简单的那种,小弟刚刚开始学,请高手赐教,最好能把具体的函数写出来,小弟感激不尽,是在vs2008中的
展开
3个回答
展开全部
//放在需要创建线程的地方,如主程序
//保存线程的ID。
DWORD dwThreadID = 0;
HANDLE hThread=CreateThread(NULL,0,DownloadThread,0,NULL,&dwThreadID);//创建下载线程
//全局函数
static DWORD WINAPI DownloadThread(void *pArg)
{
//这里写上创建线程做什么的函数
return 0;
}
////////////等待线程结束
//等待线程结束。
DWORD dRet;
MSG msg;
while (1)
{
dRet=::MsgWaitForMultipleObjects(1,&hThread,FALSE,INFINITE,QS_ALLINPUT);
if (dRet == WAIT_OBJECT_0+1)
{
while (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
else
{
break;
}
}
//删除的线程资源。
CloseHandle(hThread);
//保存线程的ID。
DWORD dwThreadID = 0;
HANDLE hThread=CreateThread(NULL,0,DownloadThread,0,NULL,&dwThreadID);//创建下载线程
//全局函数
static DWORD WINAPI DownloadThread(void *pArg)
{
//这里写上创建线程做什么的函数
return 0;
}
////////////等待线程结束
//等待线程结束。
DWORD dRet;
MSG msg;
while (1)
{
dRet=::MsgWaitForMultipleObjects(1,&hThread,FALSE,INFINITE,QS_ALLINPUT);
if (dRet == WAIT_OBJECT_0+1)
{
while (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
else
{
break;
}
}
//删除的线程资源。
CloseHandle(hThread);
展开全部
static UINT ThreadFunc(LPVOID pParam);//线程函数声明
UINT CTestApp::ThreadFunc(LPVOID pParam)
{
//线程函数实现
}
CWinThread *m_pThread; //线程指针
m_pThread = AfxBeginThread(ThreadFunc, NULL); //启动线程
就可以了
UINT CTestApp::ThreadFunc(LPVOID pParam)
{
//线程函数实现
}
CWinThread *m_pThread; //线程指针
m_pThread = AfxBeginThread(ThreadFunc, NULL); //启动线程
就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用CreateThread函数创建就可以了,至于其中的参数,你可以查看msdn!
希望可以帮到你
希望可以帮到你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询