次の方法で共有


CSingleLock::Lock

更新 : 2007 年 11 月

CSingleLock コンストラクタで渡された同期オブジェクトが制御するリソースのアクセス権を取得します。

BOOL Lock(
   DWORD dwTimeOut = INFINITE 
);

パラメータ

  • dwTimeOut
    同期オブジェクトが利用できる状態 (シグナル状態) になるのを待つ時間を指定します。INFINITE を指定すると、Lock は、オブジェクトがシグナル状態になるまで復帰しないで待ちます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

同期オブジェクトがシグナル状態のときは、Lock は正常に復帰し、スレッドはそのオブジェクトを所有します。同期オブジェクトが非シグナル (利用できない) 状態の場合、Lock はパラメータ dwTimeOut で指定されたミリ秒数の間、同期オブジェクトがシグナル状態になるのを待機します。同期オブジェクトが指定された時間内にシグナル状態にならないと、Lock は失敗します。

使用例

// m_Mutex is a data member (of type CMutex)
// of an existing class that implements the resource being shared.

// Relate the synchronization object (m_Mutex) with
// our CSingleLock object. 
CSingleLock singleLock(&m_Mutex);

// Attempt to lock the shared resource
if (singleLock.Lock(100))    // Wait 100 ms...
{
    // We were able to lock the resource;
    // we may now work with the data associated with the mutex...

    // Now that we are finished, unlock the resource for others.
    singleLock.Unlock();
}

必要条件

ヘッダー : afxmt.h

参照

参照

CSingleLock クラス

階層図

その他の技術情報

CSingleLock のメンバ