1. 线程的创建
在程序中调用CreateThread函数可以创建一个线程:HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId);
每个参数的含义为:
LPSECURITY_ATTRIBUTES lpThreadAttributes 一般设为NULL。
该参数是指向一个SECURITY_ATTRIBUTES结构的指针。如果要赋予该线程内核对象缺省的安全属性,可以传递一个NULL。如果希望所有的子进程能够继承该线程对象的句柄,须设定一个SECURITY_ATTRIBUTES结构,它的bInheritHandle成员应初始化为TRUE。
DWORD dwStackSize 一般设为0
该参数指定线程栈的大小。每个线程都拥有它自己的堆栈。如果dwStakSize为0,系统默认保留的栈的空间为1MB。
LPTHREAD_START_ROUTINE lpStartAddress 入口函数
该参数用于指定新建线程的入口函数的地址。可以创建多个线程,使用相同的入口函数地址。该入口函数的原型为:
DWORD WINAPI ThreadFunc(LPVOID