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.
线程参数:指向要传递给线程的变量指针。
扫描二维码关注公众号,回复:
56565 查看本文章
创建线程的标志: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