码迷,mamicode.com
首页 > 编程语言 > 详细

VC2015创建多线程

时间:2017-12-08 17:00:44      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:vc2015   多线程   

__declspec(thread)?int?nCount?=?0;//线程局部变量 DWORD?WINAPI?threadProc(LPVOID?*?wparm) { ?int?i?=?0; ?while?(1) ?{ ?if?(i?==?20)?break; ?Sleep(30); ?nCount?=i++; ?CString?str; ?str.Format(_T("%d\n"),?nCount); ?TRACE(str);? ?} ?return?0; } void?CtestThreadDlg::OnBnClickedButton14() { ??????HANDLE??handle?=?::CreateThread(NULL,?0,? ??????(LPTHREAD_START_ROUTINE)threadProc,this,?0,NULL);//函数类型转换 }

将类的成员函数,作为线程的回调函数.代码如下:

class?test
{
????UINT???m_nCount;
????public:
	???UINT?WINAPI?threadProc(LPVOID?*?wparm);
}

UINT?__stdcall?test::threadProc(LPVOID?*?wparm)
{
	?int?i?=?0;
	?while?(1)
	?{
		?if?(i?==?20)?break;
		?Sleep(30);
		?m_nCount?=i++;
		?CString?str;
		?str.Format(_T("%d\n"),?m_nCount);
		?TRACE(str);?
	?}
	?return?0;
}
void?test::OnBnClickedStart()
{
	typedef??UINT???(__stdcall??*stdProc)(LPVOID);
	typedef??UINT???(__stdcall??test::*?ProcObject)(LPVOID);

	ProcObject??theProc?=?(ProcObject)&test::threadProc;

????????HANDLE??handle?=?CreateThread(NULL,?0,?
????????????(LPTHREAD_START_ROUTINE)*(stdProc*)&theProc,this,?0,NULL);
}


VC2015创建多线程

标签:vc2015   多线程   

原文地址:http://blog.51cto.com/9233403/2048717

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!