ThreadPool.UnsafeQueueUserWorkItem メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean) |
指定した作業項目オブジェクトをスレッド プールにキューに格納します。 |
| UnsafeQueueUserWorkItem(WaitCallback, Object) |
指定したデリゲートをスレッド プールにキューに入れますが、呼び出し履歴はワーカー スレッドに伝達されません。 |
| UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean) |
Action<T> デリゲートによって指定されたメソッドをキューに入れ、メソッドで使用するデータを含むオブジェクトを指定します。 このメソッドは、スレッド プール スレッドが使用可能になったときに実行されます。 |
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)
指定した作業項目オブジェクトをスレッド プールにキューに格納します。
public:
static bool UnsafeQueueUserWorkItem(System::Threading::IThreadPoolWorkItem ^ callBack, bool preferLocal);
public static bool UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem callBack, bool preferLocal);
static member UnsafeQueueUserWorkItem : System.Threading.IThreadPoolWorkItem * bool -> bool
Public Shared Function UnsafeQueueUserWorkItem (callBack As IThreadPoolWorkItem, preferLocal As Boolean) As Boolean
パラメーター
- callBack
- IThreadPoolWorkItem
スレッド プール内のスレッドが作業項目を選択したときに呼び出す作業項目。
- preferLocal
- Boolean
true 現在のスレッドに近いキュー内の作業項目をキューに入れます。作業項目をスレッド プールの共有キューにキューに入れます false 。
返品
true メソッドが成功した場合。作業項目をキューに登録できなかった場合、 OutOfMemoryException がスローされます。
例外
callBack は nullです。
作業項目は Taskです。
作業項目をキューに登録できませんでした。
注釈
スレッド プールは、作業項目の Execute() メソッドを呼び出します。 必要に応じて ExecutionContext を伝達するのは、その作業項目の役割です。スレッド プールでは伝達されません。
適用対象
UnsafeQueueUserWorkItem(WaitCallback, Object)
指定したデリゲートをスレッド プールにキューに入れますが、呼び出し履歴はワーカー スレッドに伝達されません。
public:
static bool UnsafeQueueUserWorkItem(System::Threading::WaitCallback ^ callBack, System::Object ^ state);
public static bool UnsafeQueueUserWorkItem(System.Threading.WaitCallback callBack, object? state);
public static bool UnsafeQueueUserWorkItem(System.Threading.WaitCallback callBack, object state);
[System.Security.SecurityCritical]
public static bool UnsafeQueueUserWorkItem(System.Threading.WaitCallback callBack, object state);
static member UnsafeQueueUserWorkItem : System.Threading.WaitCallback * obj -> bool
[<System.Security.SecurityCritical>]
static member UnsafeQueueUserWorkItem : System.Threading.WaitCallback * obj -> bool
Public Shared Function UnsafeQueueUserWorkItem (callBack As WaitCallback, state As Object) As Boolean
パラメーター
- callBack
- WaitCallback
スレッド プール内のスレッドが作業項目を選択したときに呼び出すデリゲートを表す WaitCallback 。
- state
- Object
スレッド プールから処理されるときにデリゲートに渡されるオブジェクト。
返品
true メソッドが成功した場合。作業項目をキューに登録できなかった場合、 OutOfMemoryException がスローされます。
- 属性
例外
呼び出し元に必要なアクセス許可がありません。
メモリ不足状態が発生しました。
作業項目をキューに登録できませんでした。
callBack は nullです。
注釈
QueueUserWorkItem メソッドとは異なり、UnsafeQueueUserWorkItemは呼び出し履歴をワーカー スレッドに伝達しません。 これにより、コードは呼び出し元スタックを失い、セキュリティ特権を昇格できます。
Caution
UnsafeQueueUserWorkItemを使用すると、誤ってセキュリティ ホールが開く可能性があります。 コード アクセス セキュリティは、スタック上のすべての呼び出し元のアクセス許可に対するアクセス許可チェックに基づいて行います。 UnsafeQueueUserWorkItemを使用してスレッド プール スレッドで作業がキューに登録されている場合、スレッド プール スレッドのスタックには、実際の呼び出し元のコンテキストはありません。 悪意のあるコードは、アクセス許可チェックを回避するためにこれを利用できる可能性があります。
こちらもご覧ください
適用対象
UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)
Action<T> デリゲートによって指定されたメソッドをキューに入れ、メソッドで使用するデータを含むオブジェクトを指定します。 このメソッドは、スレッド プール スレッドが使用可能になったときに実行されます。
public:
generic <typename TState>
static bool UnsafeQueueUserWorkItem(Action<TState> ^ callBack, TState state, bool preferLocal);
public static bool UnsafeQueueUserWorkItem<TState>(Action<TState> callBack, TState state, bool preferLocal);
static member UnsafeQueueUserWorkItem : Action<'State> * 'State * bool -> bool
Public Shared Function UnsafeQueueUserWorkItem(Of TState) (callBack As Action(Of TState), state As TState, preferLocal As Boolean) As Boolean
型パラメーター
- TState
stateの要素の型。
パラメーター
- callBack
- Action<TState>
実行するメソッドを表すデリゲート。
- state
- TState
メソッドによって使用されるデータを含むオブジェクト。
- preferLocal
- Boolean
true 現在のスレッドに近いキュー内の作業項目をキューに入れます。作業項目をスレッド プールの共有キューにキューに入れます false 。
返品
true メソッドが正常にキューに入った場合。作業項目をキューに登録できなかった場合、 NotSupportedException がスローされます。
例外
callBack は nullです。
作業項目をキューに登録できませんでした。