ThreadPool.UnsafeQueueUserWorkItem Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean) |
Fügt das angegebene Arbeitselementobjekt in die Warteschlange des Threadpools ein. |
UnsafeQueueUserWorkItem(WaitCallback, Object) |
Stellt den angegebenen Delegaten in eine Warteschlange für den Threadpool, leitet die Aufrufliste jedoch nicht an den Arbeitsthread weiter. |
UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean) |
Fügt der Warteschlange eine Methode hinzu, die von einem Action<T>-Delegat zur Ausführung angegeben wurde, und gibt ein Objekt an, das die von der Methode zu verwendenden Daten enthält. Die Methode wird ausgeführt, wenn ein Thread des Threadpools verfügbar wird. |
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)
- Quelle:
- ThreadPoolWorkQueue.cs
- Quelle:
- ThreadPoolWorkQueue.cs
- Quelle:
- ThreadPoolWorkQueue.cs
Fügt das angegebene Arbeitselementobjekt in die Warteschlange des Threadpools ein.
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
Das aufzurufende Arbeitselement, wenn ein Thread im Threadpool das Arbeitselement aufruft.
- preferLocal
- Boolean
Mit true
fügen Sie das Arbeitselement in eine Warteschlange in der Nähe des aktuellen Threads ein; false
für das Einfügen des Arbeitselements in die vom Threadpool freigegebene Warteschlange.
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
.
Das Arbeitselement ist eine Task-Klasse.
Das Arbeitselement konnte nicht in die Warteschlange eingereiht werden.
Hinweise
Der Threadpool ruft die -Methode des Arbeitselements Execute() auf. Es liegt in der Verantwortung dieses Arbeitselements, bei Bedarf weiterzuverbreiten ExecutionContext . Der Threadpool wird dies nicht tun.
Gilt für:
UnsafeQueueUserWorkItem(WaitCallback, Object)
- Quelle:
- ThreadPoolWorkQueue.cs
- Quelle:
- ThreadPoolWorkQueue.cs
- Quelle:
- ThreadPoolWorkQueue.cs
Stellt den angegebenen Delegaten in eine Warteschlange für den Threadpool, leitet die Aufrufliste jedoch nicht an den Arbeitsthread weiter.
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
Ein WaitCallback, der den Delegaten darstellt, der aufgerufen werden soll, wenn ein Thread im Threadpool die Arbeitsaufgabe aufnimmt.
- state
- Object
Das Objekt, das an den Delegaten übergeben wird, wenn die Bearbeitung 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 war nicht genügend Arbeitsspeicher vorhanden.
Das Arbeitselement konnte nicht in die Warteschlange eingereiht werden.
callBack
ist null
.
Hinweise
Im Gegensatz zur QueueUserWorkItem -Methode UnsafeQueueUserWorkItem gibt den aufrufenden Stapel nicht an den Workerthread weiter. Dies ermöglicht es Code, den aufrufenden Stapel zu verlieren und dadurch seine Sicherheitsberechtigungen zu erhöhen.
Achtung
Die Verwendung UnsafeQueueUserWorkItem von könnte versehentlich eine Sicherheitslücke öffnen. Die Codezugriffssicherheit basiert bei den Berechtigungsprüfungen auf den Berechtigungen aller Aufrufer im Stapel. Wenn Die Arbeit in einer Warteschlange für einen Threadpoolthread mit UnsafeQueueUserWorkItemin die Warteschlange gestellt wird, verfügt der Stapel des Threadpoolthreads nicht über den Kontext der tatsächlichen Aufrufer. Böswilliger Code kann dies 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
Fügt der Warteschlange eine Methode hinzu, die von einem Action<T>-Delegat zur Ausführung angegeben wurde, und gibt ein Objekt an, das die von der Methode zu verwendenden Daten enthält. Die Methode wird ausgeführt, wenn ein Thread des Threadpools 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 die von der Methode zu verwendenden Daten enthält.
- preferLocal
- Boolean
Mit true
fügen Sie das Arbeitselement in eine Warteschlange in der Nähe des aktuellen Threads ein; false
für das Einfügen des Arbeitselements in die vom Threadpool freigegebene Warteschlange.
Gibt zurück
true
, wenn die Methode erfolgreich in die Warteschlange eingereiht wurde. NotSupportedException wird ausgelöst, wenn das Arbeitselement nicht in die Warteschlange eingereiht werden konnte.
Ausnahmen
callback
ist null
.
Das Arbeitselement konnte nicht in die Warteschlange eingereiht werden.