加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C++ CreateThread创建线程

(2012-11-14 10:44:29)
标签:

ccreatethread

_beginthread

_beginthreadex

_endthread

_endthreadex

分类: C/VC
HANDLE CreateThread(
  LPSECURITY_ATTRIBUTES lpThreadAttributes,  // pointer to security attributes
  DWORD dwStackSize,                         // initial thread stack size
  LPTHREAD_START_ROUTINE lpStartAddress,     // pointer to thread function
  LPVOID lpParameter,                        // argument for new thread
  DWORD dwCreationFlags,                     // creation flags
  LPDWORD lpThreadId                         // pointer to receive thread ID
);
在类的文件中定义线程函数:
       static DWORD WINAPI TestThreadProc(LPVOID lpParameter);
  DWORD WINAPI TestThreadProc();
源文件中实现:
DWORD WINAPI CTestDlg::TestThreadProc( LPVOID lpParameter )
{
        CTestDlg* pDataCollecDlg= (CTestDlg*)lpParameter;
        return pDataCollecDlg->TestThreadProc();
}
DWORD WINAPI TestThreadProc();//执行线程工作内容
创建线程:
HANDLE hThread  = CreateThread(NULL,0,TestThreadProc,this,0,NULL);
CWinThread* pThread = AfxBeginThread(ThreadTests,this,THREAD_PRIORITY_HIGHEST,0,0,NULL);//MFC函数创建,不需要关闭句柄(控制优先级等操作通过pThread操作)

NULL:安全属性继承进程
0:堆栈大小默认1M
线程函数:TestThreadProc
this:传递参数
0:创建即执行
NULL:thread ID

暂停线程:
SuspendThread(hThread);
激活/恢复线程:
ResumeThread(hThread);
设置线程优先级:
SetThreadPriority(hThread,THREAD_PRIORITY_HIGHEST);
用完时,关闭句柄:
CloseHandle(hThread);

也可以使用C运行时函数来创建、结束线程:

_beginthread, _beginthreadex

_endthread, _endthreadex

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有