1

可能であればミューテックスや別の要素を渡さずに、自分自身をスリープ状態にして別のスレッドがウェイクアップしたときにウェイクアップしたいクラスでスレッドを実行しているため、自己完結型です。

基本的に、WaitForSingleObject を 2 回呼び出すスレッドでミューテックスのアプローチを試みましたが、ミューテックスが最初の呼び出しを通知しないようにすることを期待していますが、ミューテックスが既に通知されており、スレッドがミューテックスの所有者であるため、関数が 0 を返すたびにそして所有者のままです。たとえば、スリープ状態になったら、クラス メソッドを呼び出してミューテックスを解放することを期待していました。

Windows でこれに対する簡単なアプローチはありますか、それともカプセル化を強制的に解除する必要がありますか? 走る

4

1 に答える 1

3

Waitable ハンドル アプローチは、このタスクにアプローチする一般的に好まれる方法ですが、WaitForSingleObject / WaitForMultipleObjects を使用せずに、SuspendThread / ResumeThread を使用して、実行しようとしていることをいつでも実行できます。

どちらの関数も、スリープまたはウェイクするスレッドへのハンドルを取得します。

于 2013-02-19T01:50:55.227 に答える