线程处理函数
代码语言:javascript复制DWORD WINAPI ThreadProc(LPVOID pParam)
{
return 0;
}
创建线程(无传参&创建后立刻执行)
代码语言:javascript复制DWORD nThreadID = 0;//保存线程ID
HANDLE hThread = NULL;//保存线程句柄
hThread = CreateThread(NULL,0,ThreadProc1,NULL,0,&nThreadID);//创建线程立刻执行,参数为0
创建线程(DWORD参数传递&创建后不会立刻执行)
代码语言:javascript复制DWORD nValue = 100;//将变量传递出去
CreateThread(NULL,0,ThreadProc1,(LPVOID)nValue,CREATE_SUSPENDED,&nThreadID);//创建一个挂起线程(默认不会执行)
在线程处理函数中使用变量
DWORD nValue = (DWORD)pParam;
结束指定线程
TerminateThread(m_hThreadHandle,0); // 线程句柄
启动线程
ResumThread(HANDLE hThread);
挂起(暂停)线程
SuspendThread(HANDLE hThread);
结束线程
ExitThread
线程等待(除非线程挂起,不然不会执行后面函数)
WaitForSingleObject(HANDLE,INFINITE); // 等候线程结束
关闭线程句柄 (是关闭句柄,不是关闭线程,线程没结束,关闭句柄线程照样执行)
CloseHandle
等候多个对象事件
代码语言:javascript复制HANDLE hAndle[2] = {NULL};
WaitForMultipleObjects(2/*句柄数量*/,hAndle/*句柄数组*/,TRUE/*TRUE等候所有句柄事件|FALSE等候其中一个句柄事件*/,INFINITE/*等候时间 无限等候*/);