温馨提示×

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

c++
小亿
84
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