CSyncObject クラス

Win32 の同期オブジェクトに共通の機能を提供する純粋仮想クラスです。

構文

class CSyncObject : public CObject

メンバー

パブリック コンストラクター

名前 説明
CSyncObject::CSyncObject CSyncObject オブジェクトを構築します。

パブリック メソッド

名前 説明
CSyncObject::Lock 同期オブジェクトへのアクセスを取得します。
CSyncObject::Unlock 同期オブジェクトへのアクセスを取得します。

パブリック演算子

名前 説明
CSyncObject::operator HANDLE 同期オブジェクトへのアクセスを提供します。

パブリック データ メンバー

名前 説明
CSyncObject::m_hObject 基になる同期オブジェクトへのハンドル。

解説

Microsoft Foundation クラス ライブラリには、次から CSyncObject派生したいくつかのクラスが用意されています。 CEvent、CMutexCCriticalSectionCSemaphore です。

同期オブジェクトの使用方法については、「マルチスレッド: 同期クラスの使用方法」を参照してください

継承階層

CObject

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 番目の宣言は、制御されたリソースの複数のアクセスを許可するセマフォなどの同期オブジェクトに対して提供されます。

関連項目

CObject クラス
階層図