_beginthread()
函數是C語言中的多線程創建函數,用于創建一個新的線程。以下是_beginthread()
函數的使用方法:
#include <iostream>
#include <process.h> // 包含 _beginthread() 函數的頭文件
// 子線程函數
void ThreadFunc(void* arg) {
std::cout << "This is a child thread." << std::endl;
}
int main() {
// 創建一個新線程
unsigned int threadId;
intptr_t handle = _beginthread(ThreadFunc, 0, nullptr);
if (handle == -1) {
std::cerr << "Failed to create a new thread." << std::endl;
return 1;
}
// 等待子線程結束
_endthreadex(0);
std::cout << "Main thread exits." << std::endl;
return 0;
}
在上面的示例中,我們首先包含了<process.h>
頭文件,然后定義了一個子線程函數ThreadFunc
。在main()
函數中,我們調用_beginthread()
函數創建了一個新線程,并將子線程函數ThreadFunc
作為參數傳遞給它。_beginthread()
函數的第一個參數是要執行的子線程函數,第二個參數是堆棧大小(0表示使用默認堆棧大小),第三個參數是傳遞給子線程函數的參數。_beginthread()
函數返回一個句柄,可以用于后續操作。
在主線程中,我們使用_endthreadex()
函數等待子線程結束。然后,主線程輸出一條消息并退出。
請注意,_beginthread()
函數是C語言的函數,因此在C++中使用時需要包含<process.h>
頭文件,并使用std::cout
和std::cerr
輸出消息。另外,_beginthread()
函數返回的句柄可以用于后續操作,例如等待線程結束或關閉線程句柄等。