他のチーム/製品で使用されるコンポーネントを作成しています。このコンポーネントにより、クライアント コードは一連のコマンドを発行でき、内部的にこれらのコマンドはワーカー スレッドで実行されます。コマンドが呼び出し元 (クライアント) スレッドのキューに追加され、削除/処理されるスレッド セーフ キューの実装を使用します。ワーカー スレッド。
「操作 XYZ が完了しました」という形式で、コンポーネントからクライアント コードにフィードバックを提供したいと考えています。コールバックを介して簡単にこれを行うことができますが、コールバックはワーカー スレッドで呼び出されます - 呼び出し元 (クライアント) スレッドで発生させたいのです。これどうやってするの?
クロス プラットフォーム コンポーネント (Windows、Linux、OS X) です。ブーストが利用可能です。私のデフォルトの開発コンパイラは MS VC++ 2010 です。つまり、C++11 ではありません。