CMultiLock クラス
マルチスレッド プログラムで複数のリソースのアクセス制御に使うアクセス コントロール機構を表します。
class CMultiLock
メンバー
パブリック コンストラクター
名前 |
説明 |
---|---|
CMultiLock オブジェクトを構築します。 |
パブリック メソッド
名前 |
説明 |
---|---|
配列の特定の同期オブジェクトがロックされているかどうかを判定します。 |
|
同期オブジェクトの配列を待機します。 |
|
所有された同期オブジェクトを解放します。 |
解説
CMultiLock には、基本クラスはありません。
同期クラスを CSemaphore、CMutex使用するには、CEventの待機する CMultiLock か CSingleLock のオブジェクトを作成し、同期オブジェクトを解放できます。ユーザーが特定の時刻に使用できる複数のオブジェクトがある場合 CMultiLock を使用します。だけ 1 種類のオブジェクトに一度に待機する必要がある場合 CSingleLock を使用します。
待機することに CMultiLock のオブジェクトを使用するには、最初に同期の配列をオブジェクトを作成します。次に、マネージ リソース クラスのメンバー関数の中の CMultiLock オブジェクトのコンストラクターを呼び出します。次に、リソースが使用可能かどうかを確認するに [ロック] のメンバー関数を呼び出します (シグナル状態)。が 1 の場合は、メンバー関数の残りの部分を続行します。リソースが使用可能でない場合は、解放されるリソースの一定の時間待機するかまたは失敗を返します。リソースの使用が完了したら、CMultiLock のオブジェクトが再び使用する場合は、いずれかの呼び出しは [ロック解除] 関数または CMultiLock のオブジェクトが破棄されるようにします。
CMultiLock のオブジェクトは、スレッドに応答できる CEvent のオブジェクトが複数ある場合に便利です。CEvent のすべてのポインターを含む配列を作成し Lockを呼び出します。イベントの 1 つがシグナル状態になるまでこれにより、スレッドを待機させます。
CMultiLock のオブジェクトを使用する方法の詳細については、" " マルチスレッド: 同期クラスの使用方法を参照してください。
継承階層
CMultiLock
必要条件
ヘッダー : afxmt.h