关于windows下创建线程 CreateThread函数的用法

来源:互联网 发布:pcr数据分析 编辑:程序博客网 时间:2024/06/05 05:48

HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpsa

 DWORD cbStack

  LPTHREAD_START_ROUTINElpStartAddr

  LPVOID lpvThreadParam,

DWORD fdwCreate,

  LPDWORD lpIDThread);

一、这个函数创建一个线程在调用进程的地址空间内执行。

二、参数:

lpsa:第一个参数必须为0.

cbStack:设置初始栈的大小,以字节为单位,如果为0,那么默认将使用与调用该函数的线程相同的栈空间大小。任何情况下,Windows根据需要动态延长堆栈的大小。

lpStartAddr:指向线程函数的指针,也是线程开始的首地址。

lpvThreadParam:向线程函数传递的参数,是一个指向结构的指针,不需传递参数时,为NULL,例如我们可以传递 THIS指针。

fdwCreate:线程标志。0(创建后立即激活)CREATE_SUSPENDED(创建一个挂起的线程)STACK_SIZE_PARAM_IS_A_RESERVATION(dwStackSize参数指定初始的保留堆栈 的大小,否则,dwStackSize指定提交的大小

lpIDThread:保存新线程的ID

三、返回值:

函数成功,返回线程句柄;函数失败返回false。

四、函数的第三个参数需要去实现该函数

DWORD ThreadProc( LPVOID lpParameter);

该函数名字需要和CreateThread名字相同,如果定义在类中,需要申明为static。


原创粉丝点击