2

中断できるように、実行のメインboost::threadへの参照を取得しようとしています。ただし、boost::thread はこれを行う方法を提供していないようです。

インターネットで検索しましたが、この質問に対する答えが見つからないようです。
いくつかの古い回答を見ましたが、それらは古いブースト コードに関連しているようです。
最も近い人は、boost::thread t;(デフォルトのコンストラクター)を使用すると現在のスレッドへの参照が得られると言いました。ただし、ブーストのドキュメントには、not-a-threadへの参照が作成されると書かれているようです。

私の主な目標は、メイン スレッドを中断し、現在の boost::thread への参照を取得しないことですが、それが最も簡単な方法のように思えました。

私の現在の解決策は、main から新しいスレッドを作成し、それを join() することです。現在のスレッド オブジェクトを取得 (または中断) し、この回避策を使用しない方法はありますか?

ありがとう

4

1 に答える 1

1

(v1.34 以前では) 現在のスレッドを参照するために使用されていた、デフォルトで構築されboost::threadたオブジェクトが、現在のスレッドを参照しなくなりました。

ブーストでメインスレッドを中断することはできません。作業を行うために新しいスレッドを開始し、そこから参加するという回避策がmain()最善の方法です。

于 2011-03-02T20:26:41.597 に答える