這是我第一次使用boost線程函數,在此之前,我對使用多線程有一點了解。我試圖在初始調用旁邊運行函數的第二個實例,這樣我就可以將兩個不同的變量傳遞給同一個函數,我希望能夠加快程序的運行速度。與我的代碼知道,我不斷收到一個C2784錯誤,說在boost :: thread函數中傳遞參數
'T *boost::get_pointer(const boost::scoped_ptr<T> &)' : could not deduce template argument for 'const boost::scoped_ptr<T> &' from 'const std::string'
這裏的代碼,與線程創建
string firstPart = recText.substr(1,(subPart1-1));
string secondPart = recText.substr(subPart1,subPart1);
boost::thread firstThread;
boost::thread secondThread;
firstThread = boost::thread(&Conversion::conversion,firstPart);
secondThread = boost::thread(&Conversion::conversion,secondPart);
firstThread.join();
secondThread.join();
編輯
void Conversion::conversion(string _Part)
{
int value_Part = 1;
int valueShort = 0;
int value = checkValue;
if(value == value_Part)
{
// do stuff
}
}
「轉換::轉換」的外觀是什麼樣的? – juanchopanza
@juanchopanza整個功能相當長,但這就是它的定義/開始,如果你想要更多,我可以添加它 – user1704863
是'Conversion :: conversion'成員函數嗎? – juanchopanza