代碼我搜索超過2小時,谷歌,但我無法找到一個回答我的問題:C++運行在二級性病線程
我用C++在Windows 8(86)(Visual Studio速成2012)
我想在進程的主線程上從我的工作者std :: thread運行一個方法。我試圖使用它們的std :: thread :: id創建兩個線程的引用,然後交換它們,但我無法創建引用。
以下方法是從我的輔助線程調用:
[..]
void run(bool *running, thread::id _mainThreadId)
{
while(*running)
{
thread mainThread(_mainThreadId);
thread thisThread(this_thread::get_id());
thisThread.swap(mainThread);
//mainThreads work:
[..]
thisThread.swap(mainThread);
//thisThread again
}
}
但是,當我嘗試編譯我的項目有appeares顯示構造線程(線程:: ID)不存在錯誤。
我的問題:
有沒有更好的方法在另一個線程上運行代碼? 有沒有一種方法可以使用它的id來獲取對線程的引用?
在此先感謝!
PS: 對不起,如果有語法錯誤。我來自德國。 :)
好的,謝謝。我認爲這將是類似的東西,但在Java中,你可以很容易地發佈代碼到主線程,所以我認爲這將是可能的在C + +中,也是:) – User
@ user3183356我不完全確定你指的是什麼。據我所知,你唯一的選擇是用Java開始一個新線程,就像C++一樣。你能提供一個資源來說明你在說什麼嗎? – CrazyCasta
對不起,我的意思是Android的Activity類(runOnUiThread)。自從我最後一次使用它已經有一段時間了。 – User