我正在尋找解決以下(C++)問題的最佳方法。我有一個框架給出的函數,它返回一個對象。有時只需要幾毫秒,但在某些情況下需要幾分鐘。所以我想停止執行,如果花費時間比說2秒鐘更長。 我正在考慮用boost線程來做這件事。重要的注意事項是,如果函數返回的速度快於2秒,程序不應該等待。 所以我想約2個線程:在n秒後kill線程
1.thread: execute function a
2.thread: run timer
if(thread 2 exited bevore thread 1) kill thread 1
else do nothing
我struggeling有點實際執行。特別是,
- 我如何返回一個對象從一個孩子提升線程到主線程?
- 我該如何殺死一個線程在提升?
- 是我的想法,即使是一個很好的想法,有沒有更好的方法來解決在c + +的問題(有或沒有提升)?
你不是真的想殺死線程;你想[禮貌打斷](http://www.drdobbs.com/architecture-and-design/207100682)。 – 2010-10-27 08:31:54
出於好奇:你使用的框架是什麼,有時需要很長時間才能創建一個對象? – ereOn 2010-10-27 08:33:20
我正在考慮一箇中斷,但是我看到的問題是我必須創建中斷點,而我不能修改我必須在線程中調用的框架函數。 – 2010-10-27 08:35:56