MFC中如何创建一个线程

MFC中如何创建一个线程,第1张

//放在需要创建线程的地方,如主程序

//保存线程的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)

mfc上位机开启多线程能并行执行吗?

几乎所有的程序员都知道,现代 *** 作系统进行资源分配的最小单元是进程,而 *** 作系统进行运算调度的最小单元是线程,其实,在Linux中线程也可以看作是一种轻量级的进程,那么线程是包含于进程之中的,是进程中实际的运作单位;同一进程中的多个线程共用同一块内存空间,而不同的线程又拥有独立的栈内存用以存放线程本地数据;

大家都知道,现在的计算机动辄就是多处理器核心的,而每一个线程同一时间只能运行在一个处理器上,那么如果程序采用单线程进行开发,那么就不能充分利用多核处理器带来的优势;所以为了充分利用多核处理器的资源来提高程序的执行性能,多线程编程变得越来越重要,比如对于计算密集型任务,使用一个线程可能需要100秒,但是,如果使用十个线程共同完成,那么需要的时间可能只有10秒左右;如果你是使用Java开发程序的,那么你很幸运,因为Java是内置多线程编程模型的;但是,想要使用好多线程这把利刃,还需要掌握好多线程编程的基础知识,从而做到得心应手地使用多线程进行高性能程序的开发!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12024721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存