在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([¶m]() {
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ù)的值。