温馨提示×

c++中的createthread函数怎么使用

c++
小亿
107
2024-05-16 18:17:17
栏目: 编程语言

在C++中,可以使用_beginthreadex函数来创建线程,该函数的原型如下:

uintptr_t _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *arglist, unsigned initflag, unsigned *thrdaddr ); 

下面是一个简单的示例代码,演示如何使用_beginthreadex函数创建线程:

#include <iostream> #include <windows.h> #include <process.h> unsigned int __stdcall myThread(void* data) { for (int i = 0; i < 5; i++) { std::cout << "Thread running" << std::endl; Sleep(1000); } return 0; } int main() { HANDLE threadHandle = (HANDLE)_beginthreadex(NULL, 0, myThread, NULL, 0, NULL); if (threadHandle == 0) { std::cerr << "Failed to create thread." << std::endl; return 1; } WaitForSingleObject(threadHandle, INFINITE); CloseHandle(threadHandle); return 0; } 

在上面的示例代码中,_beginthreadex函数用于创建一个新线程,传入的参数分别为线程安全性参数、栈大小、线程函数、传递给线程函数的参数、初始化标志以及用于存储线程ID的地址。在main函数中,创建了一个新线程,并等待线程执行完毕后关闭线程句柄。

请注意,_beginthreadex函数仅在Windows平台上可用,如果要在不同平台上创建线程,需要使用相应的线程创建函数。

0