多线程CreateThread函数的用法及注意事项

hThread = CreateThread(&security_attributes, dwStackSize, ThreadProc,pParam, dwFlags, &idThread) ;函数

HANDLE CreateThread(
  LPSECURITY_ATTRIBUTES lpThreadAttributes,      // pointer to security attributes
  DWORD dwStackSize,                  // initial thread stack size
  LPTHREAD_START_ROUTINE lpStartAddress,       // pointer to thread function
  LPVOID lpParameter,                   // argument for new thread
  DWORD dwCreationFlags,                // creation flags
  LPDWORD lpThreadId                  // pointer to receive thread ID
);线程

第一个参数是指向SECURITY_ATTRIBUTES型态的结构的指针。在Windows 98中忽略该参数。在Windows NT中,它被设为NULL。
第二个参数是用于新线程的初始堆栈大小,默认值为0。在任何状况下,Windows根据须要动态延长堆栈的大小。
第三个参数是指向线程函数的指标。函数名称没有限制,可是必须如下列形式声明:
DWORD WINAPI ThreadProc (PVOID pParam) ;
第四个参数为传递给ThreadProc的参数。这样主线程和从属线程就能够共享数据。
第五个参数一般为0,但当创建的线程不立刻执行时为旗标CREATE_SUSPENDED。线程将暂停直到呼叫ResumeThread来恢复线程的执行为止。
第六个参数是一个指标,指向接受执行绪ID值的变量。指针

hThread 为HANDLE类型;对象

并且线程函数必须为static型,由于:it

类的静态函数不属于该类的任何一个对象,而是属于类自己,因此不受对象局部变量的影响,在运行时能够直接调用类的静态函数,从而启动线程!io

相关文章
相关标签/搜索