0

現在のコードでは、次のようなものを使用してイベントが発生するのを待ちます

WaitForMultipleObjects(2,pEvents,false,1000);

投稿する価値のあるイベントを取得するたびに、別のスレッドでステートマシンに投稿します。私はこの動作をQPに移植しています。ここで、私が理解しているように、各アクティブオブジェクトは独自のスレッドです。したがって、アクティブオブジェクトの無限ループ(終了ブレーク条件を含む)でこれを実行できますか?

QPが内部でWindowsイベントを待機していることも理解しているので、現在のアクティブオブジェクトキューを表すWindowsイベントへのハンドルを取得して待機し、スレッド(アクティブオブジェクト)がブロックするトリックはありますか?私の(非QP)イベントと、他のオブジェクトが私のキューに投稿した場合にアクティブ化されたイベント?

4

1 に答える 1

0

誰かが興味を持っている場合に備えて、私は探していたものを見つけました。QActiveのメンバーm_osObjectは、入力キューが空のときに待機するイベントへのハンドルです。

これはQPのWindowsポートでのみテストしたものであり、私の知る限り、他のポートでは機能しないことに注意してください。

于 2012-09-19T14:38:03.833 に答える