2017-07-03 33 views
-2

我使用boost :: thread來運行一個函子。我想看到在主線程中被調用兩次的對象的一個的析構函數。但是,有時,我發現析構函數在主線程中調用一次,並在調用的線程中調用一次。 A類會做一些複雜的事情,因此這種現象並不總是會發生。任何人都知道如何發生這種情況?順便說一下,我現在使用boost :: thread myThread(boost :: ref(a)),並且一切看起來都很好。提前致謝。使用boost :: thread來運行一個函數,但是析構函數被錯誤地調用

回答

0

boost::thread複製參數並將副本傳遞到您的線程函數或函數對象的operator()

如果您需要傳遞參考,請按照現在的方法使用boost::ref

相關問題