您的位置:首页 > 其它

AfxBeginThread创建线程

2014-12-02 12:20 344 查看
用户界面线程和工作者线程都是由AfxBeginThread创建的。MFC提供了两个重载版的AfxBeginThread,一个用于用户界面线程,另一个用于工作者线程,分别有如下的原型:

用户界面线程的AfxBeginThread的原型如下:

CWinThread* AFXAPI AfxBeginThread(

  CRuntimeClass* pThreadClass,

  int nPriority,

  UINT nStackSize,

  DWORD dwCreateFlags,

  LPSECURITY_ATTRIBUTES lpSecurityAttrs);

工作者线程的AfxBeginThread的原型如下:

CWinThread* AfxBeginThread(AFX_THREADPROC pfnThreadProc,

  LPVOID lParam,

  int nPriority = THREAD_PRIORITY_NORMAL,

  UINT nStackSize = 0,

  DWORD dwCreateFlags = 0,

  LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL

  );

工作者线程实验源码(为对话框添加一个按钮,增加按钮单击事件处理函数OnBnClickedPlay),在该函数前添加线程函数的声明,在该函数后添加线程函数的实现。

UINT ThreadProcA(LPVOID param);
UINT ThreadProcB(LPVOID param);
void CaaDlg::OnBnClickedPlay()
{
	AfxBeginThread(ThreadProcA, NULL);
	AfxBeginThread(ThreadProcB, NULL);
}
UINT ThreadProcA(LPVOID param)
{
	for (int i = 0; i < 1000;++i)
	{
		TRACE("ThreadProcA ouput: %d\n", i);
	}	
	return 1;
}
UINT ThreadProcB(LPVOID param)
{
	for (int i = 0; i < 1000; ++i)
	{
		TRACE("ThreadProcB ouput: %d\n", i);
	}
	return 1;
}
运行部分结果:

atlTraceGeneral - ThreadProcB ouput: 983

atlTraceGeneral - ThreadProcA ouput: 932

atlTraceGeneral - ThreadProcB ouput: 984

atlTraceGeneral - ThreadProcA ouput: 933

atlTraceGeneral - ThreadProcB ouput: 985

atlTraceGeneral - ThreadProcA ouput: 934

atlTraceGeneral - ThreadProcB ouput: 986

atlTraceGeneral - ThreadProcB ouput: 987

atlTraceGeneral - ThreadProcA ouput: 935

atlTraceGeneral - ThreadProcB ouput: 988

atlTraceGeneral - ThreadProcA ouput: 936

atlTraceGeneral - ThreadProcB ouput: 989

atlTraceGeneral - ThreadProcB ouput: 990

atlTraceGeneral - ThreadProcA ouput: 937

atlTraceGeneral - ThreadProcB ouput: 991

atlTraceGeneral - ThreadProcA ouput: 938

atlTraceGeneral - ThreadProcA ouput: 939

atlTraceGeneral - ThreadProcB ouput: 992

atlTraceGeneral - ThreadProcA ouput: 940

atlTraceGeneral - ThreadProcB ouput: 993

atlTraceGeneral - ThreadProcA ouput: 941

atlTraceGeneral - ThreadProcB ouput: 994

atlTraceGeneral - ThreadProcB ouput: 995

atlTraceGeneral - ThreadProcA ouput: 942

atlTraceGeneral - ThreadProcB ouput: 996

atlTraceGeneral - ThreadProcB ouput: 997

atlTraceGeneral - ThreadProcA ouput: 943

atlTraceGeneral - ThreadProcB ouput: 998

atlTraceGeneral - ThreadProcA ouput: 944

atlTraceGeneral - ThreadProcB ouput: 999

用户界面线程参看博文:http://blog.csdn.net/piaopiaopiaopiaopiao/article/details/41657021
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: