critical_section 類別

其為並行執行階段明確察覺且不可重新進入的 Mutex。

語法

class critical_section;

成員

公用 Typedefs

名稱 描述
native_handle_type critical_section 物件的參考。

公用類別

名稱 描述
critical_section::scoped_lock 類別 物件的例外狀況安全 RAII 包裝函式 critical_section

公用建構函式

名稱 描述
critical_section 建構新的重要區段。
~critical_section解構函式 終結重要區段。

公用方法

名稱 描述
lock 取得此重要區段。
native_handle 如果存在,則傳回平臺特定的原生控制碼。
try_lock 嘗試取得鎖定而不封鎖。
try_lock_for 嘗試取得鎖定,而不進行特定毫秒數的封鎖。
unlock 解除鎖定關鍵區段。

備註

如需詳細資訊,請參閱 同步處理資料結構

繼承階層架構

critical_section

需求

標頭: concrt.h

命名空間: concurrency

critical_section

建構新的重要區段。

critical_section();

~critical_section

終結重要區段。

~critical_section();

備註

當解構函式執行時,預期不會再保留鎖定。 允許重要區段在鎖定仍保留時解構,會導致未定義的行為。

lock

取得此重要區段。

void lock();

備註

使用scoped_lock 建構以例外狀況安全的方式取得和釋放 critical_section 物件通常比較安全

如果呼叫內容已經保留鎖定, 則會擲回improper_lock 例外狀況。

native_handle

如果存在,則傳回平臺特定的原生控制碼。

native_handle_type native_handle();

傳回值

重要區段的參考。

備註

critical_section物件與 Windows 作業系統的平臺特定原生控制碼無關。 方法只會傳回物件本身的參考。

critical_section::scoped_lock 類別

物件的例外狀況安全 RAII 包裝函式 critical_section

class scoped_lock;

scoped_lock::scoped_lock

scoped_lock建構 物件,並取得 critical_section 傳入 參數的物件 _Critical_section 。 如果關鍵區段由另一個執行緒持有,此呼叫將會封鎖。

explicit _CRTIMP scoped_lock(critical_section& _Critical_section);

參數

_Critical_section
要鎖定的重要區段。

scoped_lock::~scoped_lock

scoped_lock終結 物件,並釋放其建構函式中提供的重要區段。

~scoped_lock();

try_lock

嘗試取得鎖定而不封鎖。

bool try_lock();

傳回值

如果已取得鎖定,則為 值 true ,否則為 值 false

try_lock_for

嘗試取得鎖定,而不進行特定毫秒數的封鎖。

bool try_lock_for(unsigned int _Timeout);

參數

_超時
在逾時前要等候的毫秒數。

傳回值

如果已取得鎖定,則為 值 true ,否則為 值 false

unlock

解除鎖定關鍵區段。

void unlock();

另請參閱

concurrency 命名空間
reader_writer_lock 類別