分享方式:


CSyncObject 類別

在 Win32 中提供同步處理物件常見功能的純虛擬類別。

語法

class CSyncObject : public CObject

成員

公用建構函式

名稱 描述
CSyncObject::CSyncObject 建構 CSyncObject 物件。

公用方法

名稱 描述
CSyncObject::Lock 取得同步處理物件的存取權。
CSyncObject::Unlock 取得同步處理物件的存取權。

公用運算子

名稱 描述
CSyncObject::operator HANDLE 提供同步處理物件的存取權。

公用資料成員

名稱 描述
CSyncObject::m_hObject 基礎同步處理物件的句柄。

備註

Microsoft Foundation 類別庫提供衍生自 CSyncObject的數個類別。 這些是 CEventCMutexCCriticalSectionCSemaphore

如需如何使用同步處理對象的詳細資訊,請參閱多線程:如何使用同步處理類別一

繼承階層架構

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。

備註

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

另請參閱

CObject 類別
階層架構圖表