ThreadPool.UnsafeQueueUserWorkItem Methode

Definition

Überlädt

Name Beschreibung
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Stellt das angegebene Arbeitselementobjekt in die Warteschlange für den Threadpool.

UnsafeQueueUserWorkItem(WaitCallback, Object)

Führt die Warteschlange des angegebenen Delegaten an den Threadpool durch, verteilt den Aufrufstapel jedoch nicht an den Workerthread.

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

Stellt eine Methode in die Warteschlange, die von einem Action<T> Delegaten für die Ausführung angegeben wird, und gibt ein Objekt an, das Daten enthält, die von der Methode verwendet werden sollen. Die Methode wird ausgeführt, wenn ein Threadpoolthread verfügbar wird.

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Quelle:
ThreadPoolWorkQueue.cs
Quelle:
ThreadPoolWorkQueue.cs
Quelle:
ThreadPoolWorkQueue.cs
Quelle:
ThreadPoolWorkQueue.cs
Quelle:
ThreadPoolWorkQueue.cs

Stellt das angegebene Arbeitselementobjekt in die Warteschlange für den Threadpool.

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

Parameter

callBack
IThreadPoolWorkItem

Die Arbeitsaufgabe, die aufgerufen werden soll, wenn ein Thread im Threadpool die Arbeitsaufgabe einnimmt.

preferLocal
Boolean

true die Warteschlange der Arbeitsaufgabe in einer Warteschlange in der Nähe des aktuellen Threads zu bevorzugen; false um es vorzuziehen, die Arbeitsaufgabe in die freigegebene Warteschlange des Threadpools einzureihen.

Gibt zurück

true wenn die Methode erfolgreich ist; OutOfMemoryException wird ausgelöst, wenn die Arbeitsaufgabe nicht in die Warteschlange gestellt werden konnte.

Ausnahmen

callBack ist null.

Die Arbeitsaufgabe ist ein Task.

Die Arbeitsaufgabe konnte nicht in die Warteschlange gestellt werden.

Hinweise

Der Threadpool ruft die Methode der Arbeitsaufgabe Execute() auf. Es liegt in der Verantwortung dieser Arbeitsaufgabe, wenn ExecutionContext sie benötigt wird, weiterzuverbreiten; der Threadpool führt dies nicht aus.

Gilt für:

UnsafeQueueUserWorkItem(WaitCallback, Object)

Quelle:
ThreadPoolWorkQueue.cs
Quelle:
ThreadPoolWorkQueue.cs
Quelle:
ThreadPoolWorkQueue.cs
Quelle:
ThreadPoolWorkQueue.cs
Quelle:
ThreadPoolWorkQueue.cs

Führt die Warteschlange des angegebenen Delegaten an den Threadpool durch, verteilt den Aufrufstapel jedoch nicht an den Workerthread.

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

Parameter

callBack
WaitCallback

A WaitCallback that represents the delegate to invoke when a thread in the thread pool picks up the work item.

state
Object

Das Objekt, das an den Delegaten übergeben wird, wenn der Dienst aus dem Threadpool erfolgt.

Gibt zurück

true wenn die Methode erfolgreich ist; OutOfMemoryException wird ausgelöst, wenn die Arbeitsaufgabe nicht in die Warteschlange gestellt werden konnte.

Attribute

Ausnahmen

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Es wurde eine Nichtspeicherbedingung gefunden.

Die Arbeitsaufgabe konnte nicht in die Warteschlange gestellt werden.

callBack ist null.

Hinweise

Im Gegensatz zur QueueUserWorkItem Methode UnsafeQueueUserWorkItem wird der aufrufende Stapel nicht an den Workerthread weitergegeben. Dadurch kann Code den aufrufenden Stapel verlieren und dadurch seine Sicherheitsberechtigungen erhöhen.

Vorsicht

Die Verwendung UnsafeQueueUserWorkItem könnte versehentlich ein Sicherheitsloch öffnen. Die Codezugriffssicherheit basiert auf den Berechtigungsprüfungen aller Aufrufer im Stapel. Wenn die Arbeit in eine Threadpoolthreadwarteschlange eingereiht UnsafeQueueUserWorkItemwird, verfügt der Stapel des Threadpoolthreads nicht über den Kontext der tatsächlichen Aufrufer. Bösartiger Code kann dies möglicherweise ausnutzen, um Berechtigungsprüfungen zu vermeiden.

Weitere Informationen

Gilt für:

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

Quelle:
ThreadPoolWorkQueue.cs
Quelle:
ThreadPoolWorkQueue.cs
Quelle:
ThreadPoolWorkQueue.cs
Quelle:
ThreadPoolWorkQueue.cs
Quelle:
ThreadPoolWorkQueue.cs

Stellt eine Methode in die Warteschlange, die von einem Action<T> Delegaten für die Ausführung angegeben wird, und gibt ein Objekt an, das Daten enthält, die von der Methode verwendet werden sollen. Die Methode wird ausgeführt, wenn ein Threadpoolthread verfügbar wird.

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

Typparameter

TState

Der Typ der Elemente von state.

Parameter

callBack
Action<TState>

Ein Delegat, der die auszuführende Methode darstellt.

state
TState

Ein Objekt, das Daten enthält, die von der Methode verwendet werden sollen.

preferLocal
Boolean

true die Warteschlange der Arbeitsaufgabe in einer Warteschlange in der Nähe des aktuellen Threads zu bevorzugen; false um es vorzuziehen, die Arbeitsaufgabe in die freigegebene Warteschlange des Threadpools einzureihen.

Gibt zurück

true wenn die Methode erfolgreich in die Warteschlange gestellt wird; NotSupportedException wird ausgelöst, wenn die Arbeitsaufgabe nicht in die Warteschlange gestellt werden konnte.

Ausnahmen

callBack ist null.

Die Arbeitsaufgabe konnte nicht in die Warteschlange gestellt werden.

Gilt für: