ThreadPool.UnsafeQueueUserWorkItem(WaitCallback, Object) メソッド

定義

指定したデリゲートをスレッド プールにキューに入れますが、呼び出し履歴はワーカー スレッドに伝達されません。

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 がスローされます。

属性

例外

呼び出し元に必要なアクセス許可がありません。

メモリ不足状態が発生しました。

作業項目をキューに登録できませんでした。

callBacknullです。

注釈

QueueUserWorkItem メソッドとは異なり、UnsafeQueueUserWorkItemは呼び出し履歴をワーカー スレッドに伝達しません。 これにより、コードは呼び出し元スタックを失い、セキュリティ特権を昇格できます。

Caution

UnsafeQueueUserWorkItemを使用すると、誤ってセキュリティ ホールが開く可能性があります。 コード アクセス セキュリティは、スタック上のすべての呼び出し元のアクセス許可に対するアクセス許可チェックに基づいて行います。 UnsafeQueueUserWorkItemを使用してスレッド プール スレッドで作業がキューに登録されている場合、スレッド プール スレッドのスタックには、実際の呼び出し元のコンテキストはありません。 悪意のあるコードは、アクセス許可チェックを回避するためにこれを利用できる可能性があります。

適用対象

こちらもご覧ください