各種多線程 創建函數小結

1.  CreateThread;
HANDLE CreateThread(
  LPSECURITY_ATTRIBUTES lpThreadAttributes,  // 表示線程的安全屬性,可以爲NULL
  DWORD dwStackSize,                         // 表示縣城棧的最大大小,可以爲0 ,忽略
  LPTHREAD_START_ROUTINE lpStartAddress,     // 表示線程函數,當線程運行時,執行該函數
  LPVOID lpParameter,                        // 表示向線程函數傳遞的參數
  DWORD dwCreationFlags,                     // 表示線程創建的標記,爲CREATE_SUSPENDED,表示線程創建後立即被掛起,只有在其後調用ResumeThread函數時才                                                  開始被執行;爲STACK_SIZE_PARAM_IS_A_RESERVATION,表示dwStackSize參數不被忽略。

  LPDWORD lpThreadId                         // 表示一個整型指針,用於接收線程ID,如果該參數爲NULL,表示線程ID不被返回。
);
 
返回值:如果執行成功,返回線程句柄,否則返回NULL

DWORD WINAPI ThreadProc(LPVOID lpParameter  );
 
2._beginthread;

unsigned long _beginthread( void( __cdecl *start_address )( void * ), unsigned stack_size, void *arglist );

unsigned long _beginthreadex( void *security,  //表示線程的安全信息,如果爲NULL,表示線程句柄不被子進程繼承

unsigned stack_size,  // 表示線程的棧大小,可以爲0

unsigned ( __stdcall *start_address )( void * ), //表示線程函數,線程運行時將執行該函數

void *arglist,  //表示傳遞到線程函數中的參數

unsigned initflag, // 表示線程的初始化標記,爲0,表示線程立即執行線程函數;爲CREATE_SUSPENDED表示線程暫 時被掛起

unsigned *thrdaddr  //表示一個整型指針,用於返回線程ID

);

unsigned int _stdcall ThreadProc(LPVOID lpParameter);

3.AfxBeginThread;

CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, //表示線程函數指針

LPVOID pParam,  //表示線程函數的參數

int nPriority = THREAD_PRIORITY_NORMAL,  //表示線程的優先級

UINT nStackSize = 0,  //表示線程堆棧的大小

DWORD dwCreateFlags = 0,  //表示線程的創建標記

LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL  //表示線程的安全屬性

);

CWinThread* AfxBeginThread( CRuntimeClass* pThreadClass, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );

UINT ControllingFunction(LPVOID pThreadParam);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章