溫馨提示×

beginthreadex()怎樣向線程函數(shù)傳遞參數(shù)

小億
111
2023-12-19 09:23:47
欄目: 編程語言

在C++中,可以使用lambda函數(shù)來實(shí)現(xiàn)向線程函數(shù)傳遞參數(shù)。以下是一個示例代碼:

#include <iostream>
#include <thread>

void threadFunc(int param) {
    std::cout << "Thread function. Parameter: " << param << std::endl;
}

int main() {
    int param = 42;
    std::thread myThread([&param]() {
        threadFunc(param);
    });

    myThread.join();
    
    return 0;
}

在這個示例中,我們使用lambda函數(shù)來創(chuàng)建一個線程。lambda函數(shù)捕獲了param變量,并作為參數(shù)傳遞給線程函數(shù)threadFunc。在lambda函數(shù)內(nèi)部調(diào)用threadFunc時,使用了捕獲的參數(shù)param。

注意,在創(chuàng)建線程時,我們將lambda函數(shù)作為參數(shù)傳遞給std::thread構(gòu)造函數(shù)。lambda函數(shù)的參數(shù)列表為空,因?yàn)槲覀儾东@了外部的param變量。

這樣,我們就成功地向線程函數(shù)傳遞了參數(shù)param。線程函數(shù)threadFunc會打印出參數(shù)的值。

0