ThreadPool.UnsafeQueueUserWorkItem(WaitCallback, Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したデリゲートをスレッド プールにキューに入れますが、呼び出し履歴はワーカー スレッドに伝達されません。
public:
static bool UnsafeQueueUserWorkItem(System::Threading::WaitCallback ^ callBack, System::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を使用してスレッド プール スレッドで作業がキューに登録されている場合、スレッド プール スレッドのスタックには、実際の呼び出し元のコンテキストはありません。 悪意のあるコードは、アクセス許可チェックを回避するためにこれを利用できる可能性があります。