CSyncObject クラス
Win32 の同期オブジェクトに共通の機能を提供する純粋仮想クラスです。
構文
class CSyncObject : public CObject
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CSyncObject::CSyncObject | CSyncObject オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CSyncObject::Lock | 同期オブジェクトへのアクセスを取得します。 |
CSyncObject::Unlock | 同期オブジェクトへのアクセスを取得します。 |
パブリック演算子
名前 | 説明 |
---|---|
CSyncObject::operator HANDLE | 同期オブジェクトへのアクセスを提供します。 |
パブリック データ メンバー
名前 | 説明 |
---|---|
CSyncObject::m_hObject | 基になる同期オブジェクトへのハンドル。 |
解説
Microsoft Foundation クラス ライブラリには、次から CSyncObject
派生したいくつかのクラスが用意されています。 CEvent、CMutex、CCriticalSection、CSemaphore です。
同期オブジェクトの使用方法については、「マルチスレッド: 同期クラスの使用方法」を参照してください。
継承階層
CSyncObject
必要条件
ヘッダー: afxmt.h
CSyncObject::CSyncObject
指定された名前を持つ同期オブジェクトを構築します。
explicit CSyncObject(LPCTSTR pstrName);
virtual ~CSyncObject();
パラメーター
pstrName
オブジェクトの名前。 NULL の場合、 pstrName は null になります。
CSyncObject::Lock
同期オブジェクトによって制御されるリソースにアクセスするには、この関数を呼び出します。
virtual BOOL Lock(DWORD dwTimeout = INFINITE);
パラメーター
dwTimeout
同期オブジェクトが使用可能になるまで待機する時間 (シグナル通知) をミリ秒単位で指定します。 INFINITE の場合は、 Lock
オブジェクトが通知されるまで待機してから戻ります。
戻り値
関数が成功した場合は 0 以外。それ以外の場合は 0。
解説
同期オブジェクトが通知されると、正常に返され、 Lock
スレッドがオブジェクトを所有するようになりました。 同期オブジェクトが非署名 (使用不可) Lock
の場合、dwTimeOut パラメーターで指定されたミリ秒数まで同期オブジェクトが通知されるまで待機します。 指定した時間内に同期オブジェクトが通知されなかった場合は、 Lock
エラーを返します。
CSyncObject::m_hObject
基になる同期オブジェクトへのハンドル。
HANDLE m_hObject;
CSyncObject::operator HANDLE
この演算子を使用して、オブジェクトのハンドルを CSyncObject
取得します。
operator HANDLE() const;
戻り値
成功した場合は、同期オブジェクトのハンドル。それ以外の場合は NULL。
解説
このハンドルを使用して、Windows API を直接呼び出すことができます。
CSyncObject::Unlock
パラメーターなしの宣言 Unlock
は純粋な仮想関数であり、から CSyncObject
派生するすべてのクラスによってオーバーライドされる必要があります。
virtual BOOL Unlock() = 0; virtual BOOL Unlock(
LONG lCount,
LPLONG lpPrevCount = NULL);
パラメーター
Lcount
既定の実装では使用されません。
lpPrevCount
既定の実装では使用されません。
戻り値
既定の実装では常に TRUE が返されます。
解説
2 つのパラメーターを持つ宣言の既定の実装では、常に TRUE が返されます。 この関数は、呼び出し元スレッドが所有する同期オブジェクトへのアクセスを解放するために呼び出されます。 2 番目の宣言は、制御されたリソースの複数のアクセスを許可するセマフォなどの同期オブジェクトに対して提供されます。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示