C++中beginthreadex()如何向线程函数传递参数

   2025-02-15 2770
核心提示:在C++中,可以使用lambda函数来传递参数给beginthreadex()函数。下面是一个示例代码:#include iostream#include windows.h// 线

在C++中,可以使用lambda函数来传递参数给beginthreadex()函数。

下面是一个示例代码:

#include <iostream>#include <windows.h>// 线程函数DWORD WINAPI MyThread(LPVOID lpParam){    int n = *(int*)lpParam; // 从参数中获取值    std::cout << "Thread started with parameter: " << n << std::endl;    // 线程逻辑代码...    return 0;}int main(){    int n = 10; // 参数值    HANDLE hThread = (HANDLE)_beginthreadex(NULL, 0, MyThread, &n, 0, NULL); // 传递参数给线程函数    // 等待线程结束    WaitForSingleObject(hThread, INFINITE);    std::cout << "Thread finished" << std::endl;    return 0;}

在上面的代码中,使用lambda函数来调用beginthreadex()函数,并将参数n传递给线程函数MyThread()。在线程函数中,使用强制类型转换将lpParam参数转换为int类型指针,并读取参数值。

请注意,强制类型转换可能会导致类型不匹配或访问非法内存,所以在实际应用中需要小心使用。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言