首页 > 编程语言 > 详细

VC2015创建多线程

时间:2017-12-08 15:58:10      阅读:322      评论:0      收藏:0      [点我收藏+]
__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创建多线程

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!