IExecutionResource::Remove メソッド
この実行リソースをリソース マネージャーに返します。
virtual void Remove(
_Inout_ IScheduler * pScheduler
) =0;
パラメーター
- pScheduler
この実行リソースを削除する要求を発行しているスケジューラへのインターフェイス。
解説
このメソッドは、仮想プロセッサ ルートに関連付けられている実行リソースやスタンドアロンの実行リソースをリソース マネージャーに返すために使用します。
これが ISchedulerProxy::SubscribeCurrentThread メソッドまたは ISchedulerProxy::RequestInitialVirtualProcessors メソッドから受け取ったスタンドアロンの実行リソースである場合、Remove メソッドを呼び出すことで、表現用にリソースが作成されたスレッドのサブスクリプションが終了します。 スケジューラのプロキシをシャットダウンする前にすべてのスレッドのサブスクリプションを終了し、サブスクリプションを作成したスレッドから Remove を呼び出す必要があります。
仮想プロセッサ ルートは、インターフェイス、IVirtualProcessorRoot が IExecutionResource インターフェイスから継承するため Remove のメソッドの呼び出しによってリソース マネージャーに返すこともできます。 仮想プロセッサ ルートは、IScheduler::RemoveVirtualProcessors メソッドの呼び出しに対して、または ISchedulerProxy::CreateOversubscriber メソッドから取得したオーバーサブスクリプション状態の仮想プロセッサ ルートの処理が完了したときに、返す必要があります。 仮想プロセッサ ルートの場合、スレッドによる Remove メソッドの呼び出しに関する制限はありません。
pScheduler パラメーターが NULL に設定された場合、invalid_argument がスローされます。
pScheduler パラメーターがこの実行リソースが作成された対象のスケジューラと異なる場合 (スタンドアロン実行リソースの場合は、現在のスレッドがスレッド サブスクリプションを作成したスレッドと異なる場合)、invalid_operation がスローされます。
必要条件
ヘッダー: concrtrm.h
名前空間: concurrency