ThreadPool.UnsafeQueueUserWorkItem メソッド

定義

オーバーロード

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

指定された作業項目オブジェクトをスレッド プールのキューに入れます。

UnsafeQueueUserWorkItem(WaitCallback, Object)

指定したデリゲートをスレッド プールのキューに置きます。ただし、コール スタックをワーカー スレッドに反映しません。

UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)

実行用に Action<T> デリゲートで指定したメソッドをキューに入れ、そのメソッドで使用するデータを含んだオブジェクトを指定します。 メソッドは、スレッド プール スレッドが使用可能になったときに実行されます。

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

ソース:
ThreadPoolWorkQueue.cs
ソース:
ThreadPoolWorkQueue.cs
ソース:
ThreadPoolWorkQueue.cs

指定された作業項目オブジェクトをスレッド プールのキューに入れます。

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

例外

callbacknullです。

作業項目は Task です。

作業項目をキューに配置できません。

注釈

スレッド プールは、作業項目の Execute() メソッドを呼び出します。 必要な場合は、その作業項目を伝達 ExecutionContext する必要があります。スレッド プールでは伝達されません。

適用対象

UnsafeQueueUserWorkItem(WaitCallback, Object)

ソース:
ThreadPoolWorkQueue.cs
ソース:
ThreadPoolWorkQueue.cs
ソース:
ThreadPoolWorkQueue.cs

指定したデリゲートをスレッド プールのキューに置きます。ただし、コール スタックをワーカー スレッドに反映しません。

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

属性

例外

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

メモリが不足しています。

作業項目をキューに配置できません。

callBacknullです。

注釈

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

注意事項

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

こちらもご覧ください

適用対象

UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)

ソース:
ThreadPoolWorkQueue.cs
ソース:
ThreadPoolWorkQueue.cs
ソース:
ThreadPoolWorkQueue.cs

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

例外

callbacknullです。

作業項目をキューに配置できません。

適用対象