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。
備註
如果已發出同步處理物件的訊號, 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。
備註
具有兩個參數之宣告的預設實作一律會傳回 TRUE。 呼叫此函式以釋放對呼叫線程所擁有之同步處理物件的存取權。 第二個宣告會提供給同步處理物件,例如允許多個受控資源的存取號誌。