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);