1.创建线程
函数原型
CreateThread(
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ SIZE_T dwStackSize,
_In_ LPTHREAD_START_ROUTINE lpStartAddress,
_In_opt_ __drv_aliasesMem LPVOID lpParameter,
_In_ DWORD dwCreationFlags,
_Out_opt_ LPDWORD lpThreadId
);
参数(安全描述符
堆栈的初始大小
线程函数
给线程传递的参数
线程创建的标志
线程标识符)
安全描述符:lpThreadAttributes成员为新线程指定安全描述符。如果lpThreadAttributes为NULL,则线程将获取默认的安全描述符。
堆栈初始大小:如果此参数为0,则使用默认大小1M.
线程函数:该指针表示线程的起始地址。详细信息参照ThreadProc.
线程参数:指向要传递给线程的变量指针。
创建线程的标志:0表示创建后立即运行。
CREATE_SUSPENDED 表示在挂起状态下创建。
线程标识符:如果此参数为 NULL,则不返回线程标识符。
2.挂起线程
函数原型
DWORD WINAPI SuspendThread(
在_HANDLE hThread
);
hThread:要挂起的线程句柄。
函数返回值:如果函数成功则返回线程先前的暂停计数。
3.恢复线程
函数原型
DWORD WINAPI ResumeThread(
在_HANDLE hThread
);
hThread:要重新启动的线程句柄。
函数返回值:如果函数成功则返回线程先前的暂停计数。如果失败返回-1.
4.结束线程
函数原型BOOL WINAPI TerminateThread(
_Inout_ HANDLE hThread,
_In_ DWORD dwExitCode
);
hThread:要终止的线程句柄。
dwExitCode:线程的退出代码。一般来说强制退出是-1.
函数返回值:函数成功返回0 失败返回非0
例子:
Examples