次の方法で共有


CMultiLock::Lock

CMultiLock のコンストラクターに指定された同期オブジェクトによって制御される一つ以上のリソースにアクセスするためにこの関数を呼び出します。

DWORD Lock(
   DWORD dwTimeOut = INFINITE,
   BOOL bWaitForAll = TRUE,
   DWORD dwWakeMask = 0 
);

パラメーター

  • dwTimeOut
    同期オブジェクトを使用するために待機する時間を指定します (シグナル状態)。オブジェクトが返される前に通知されるまで待機 INFINITE、Lock が。

  • bWaitForAll
    すべてのオブジェクトがある返される前に同時にシグナル状態になってから、かどうかを指定します。待機しているオブジェクトのいずれかがシグナル状態 FALSE場合、Lock が返されます。

  • dwWakeMask
    待機を中止ほかの条件に指定します。このパラメーターの使用可能なオプションの一覧については、Windows SDKの MsgWaitForMultipleObjects を参照してください。

戻り値

Lock が失敗した場合は、– 1.を返します。成功すると、次の値に 1 を返します:

  • WAIT_OBJECT_0WAIT_OBJECT_0 + オブジェクトの二つ目の間 (– 1)

    bWaitForAll が **[真]**場合、すべてのオブジェクトがシグナル状態 (利用可能)。bWaitForAll が FALSEの場合、戻り値は– WAIT_OBJECT_0 シグナル状態オブジェクトの配列のインデックスです (使用可能)。

  • WAIT_OBJECT_0 + (オブジェクトの数)

    dwWakeMask で指定された入力イベントは、スレッドのキューに使用できます。

  • WAIT_ABANDONED_0WAIT_ABANDONED_0 + オブジェクトの二つ目の間 (– 1)

    bWaitForAll が **[真]**場合、すべてのオブジェクトが通知され、オブジェクトの少なくとも 1 つが、放棄されたミューテックス オブジェクトです。bWaitForAll が FALSEの場合、戻り値は– WAIT_ABANDONED_0 待機条件を満たした放棄されたミューテックスのオブジェクトの配列のインデックスです。

  • WAIT_TIMEOUT

    待機時間の経過に成功しない dwTimeOut で指定されたタイムアウト間隔。

解説

bWaitForAll が **[真]**場合、Lock は、すべての同期オブジェクトが同時にシグナル状態になるとすぐに正常に返されました。bWaitForAll が FALSE場合、Lock では、同期オブジェクトの一つ以上がシグナル状態になるとすぐに返されます。

Lock がすぐに戻れなければ返される前に dwTimeOut の パラメーターで指定したミリ秒数よりもまで待機しません。dwTimeOut がINFINITE場合、Lock がオブジェクトへのアクセスを取得または dwWakeMask で指定された条件が満たされるまで制御を戻しません。それ以外 Lock が同期オブジェクトを取得されたこれは正常に返されました; でない場合は、エラーを返します。

必要条件

Header: afxmt.h

参照

関連項目

CMultiLock クラス

階層図