Microsoft DirectX 8.0 |
メッセージ処理を行うイベント オブジェクトのラッパー クラス
定義 : Wxutil.h
このクラスは CAMEvent オブジェクトから派生しており、1 つのメソッド WaitMsg を追加する。このメソッドは、待機中に受信したメッセージをディスパッチする。
Public メソッド | |
---|---|
WaitMsg | 送られたメッセージをディスパッチすると同時に、イベントが通知済になるのを待つ。 |
送られたメッセージをディスパッチすると同時に、イベントが通知済になるのを待つ、あるいは指定されたタイムアウトが起こるのを待つ。
構文
BOOL WaitMsg( DWORD dwTimeOut = INFINITE );
パラメータ
- dwTimeOut
- オプションのタイムアウト値 (ミリ秒単位)。
戻り値
イベントが通知済になった場合は TRUE、タイムアウトが発生した場合は FALSE を返す。
注意
このメソッドはメッセージ処理に PeekMessage 関数を呼び出す。スレッドがイベントを待つ間にメッセージを処理する必要がある場合、CAMEvent::Wait の代わりにこのメソッドを呼び出す。 スレッドがメッセージを処理せず他のスレッドがメッセージを送った場合、デッドロックが起こる可能性がある。
たとえば、スレッドを作成してからそのスレッドの初期化までブロックしたとする。そのスレッドが SendMessage 関数を呼び出して、ウィンドウにメッセージを送るとデッドロックになる。これは SendMessage はそのメッセージが処理されるまで返らないからだ。WaitMsg を使えば SendMessage は返り、デッドロックは避けられる。