IUMSThreadProxy 結構

執行緒的抽象概念。 如果您想要將可使用者模式排程 (UMS) 的執行緒授與給排程器,請將排程器原則項目 SchedulerKind 的值設為 UmsThreadDefault,並實作 IUMSScheduler 介面。 只有安裝 Windows 7 (含以上) 版本的 64 位元作業系統支援 UMS 執行緒。

語法

struct IUMSThreadProxy : public IThreadProxy;

成員

公用方法

名稱 描述
IUMSThreadProxy::EnterCriticalRegion 呼叫 以進入重要區域。 在關鍵區域內時,排程器不會觀察區域期間發生的非同步封鎖作業。 這表示排程器不會針對 UMS 執行緒重新輸入分頁錯誤、執行緒暫停、核心非同步程序呼叫 (APCs)等等。
IUMSThreadProxy::EnterHyperCriticalRegion 呼叫 以進入超關鍵區域。 在超關鍵區域內時,排程器不會觀察區域期間發生的任何封鎖作業。 這表示不會因為 UMS 執行緒的封鎖函式呼叫、鎖定封鎖的擷取嘗試、分頁錯誤、執行緒暫止、核心非同步程序呼叫 (APC) 等,而重新進入排程器。
IUMSThreadProxy::ExitCriticalRegion 呼叫 以結束重要區域。
IUMSThreadProxy::ExitHyperCriticalRegion 呼叫 以結束超關鍵區域。
IUMSThreadProxy::GetCriticalRegionType 傳回執行緒 Proxy 所在的重要區欄位型別。 因為超關鍵區域是重要區域的超集合,如果程式碼已進入關鍵區域,則會傳回超關鍵區域 InsideHyperCriticalRegion

繼承階層架構

IThreadProxy

IUMSThreadProxy

需求

標頭: concrtrm.h

命名空間: concurrency

IUMSThreadProxy::EnterCriticalRegion 方法

呼叫 以進入重要區域。 在關鍵區域內時,排程器不會觀察區域期間發生的非同步封鎖作業。 這表示排程器不會針對 UMS 執行緒重新輸入分頁錯誤、執行緒暫停、核心非同步程序呼叫 (APCs)等等。

virtual int EnterCriticalRegion() = 0;

傳回值

重要區域的新深度。 重要區域會重新進入。

IUMSThreadProxy::EnterHyperCriticalRegion 方法

呼叫 以進入超關鍵區域。 在超關鍵區域內時,排程器不會觀察區域期間發生的任何封鎖作業。 這表示不會因為 UMS 執行緒的封鎖函式呼叫、鎖定封鎖的擷取嘗試、分頁錯誤、執行緒暫止、核心非同步程序呼叫 (APC) 等,而重新進入排程器。

virtual int EnterHyperCriticalRegion() = 0;

傳回值

超關鍵區域的新深度。 超關鍵區域會重新進入。

備註

排程器必須特別小心它所呼叫的方法,以及它在這類區域中取得哪些鎖定。 如果這類區域中的程式碼封鎖了排程器負責排程的鎖定,則死結可能會隨之而來。

IUMSThreadProxy::ExitCriticalRegion 方法

呼叫 以結束重要區域。

virtual int ExitCriticalRegion() = 0;

傳回值

重要區域的新深度。 重要區域會重新進入。

IUMSThreadProxy::ExitHyperCriticalRegion 方法

呼叫 以結束超關鍵區域。

virtual int ExitHyperCriticalRegion() = 0;

傳回值

超關鍵區域的新深度。 超關鍵區域會重新進入。

IUMSThreadProxy::GetCriticalRegionType 方法

傳回執行緒 Proxy 所在的重要區欄位型別。 因為超關鍵區域是重要區域的超集合,如果程式碼已進入關鍵區域,則會傳回超關鍵區域 InsideHyperCriticalRegion

virtual CriticalRegionType GetCriticalRegionType() const = 0;

傳回值

執行緒 Proxy 所在的重要區欄位型別。

另請參閱

concurrency 命名空間
IUMSScheduler 結構