ThreadPool.UnsafeQueueUserWorkItem ThreadPool.UnsafeQueueUserWorkItem ThreadPool.UnsafeQueueUserWorkItem ThreadPool.UnsafeQueueUserWorkItem Method

Definition

Überlädt

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean) UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean) UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean) UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Fügt das angegebene Arbeitselementobjekt in die Warteschlange des Threadpools ein.Queues the specified work item object to the thread pool.

UnsafeQueueUserWorkItem(WaitCallback, Object) UnsafeQueueUserWorkItem(WaitCallback, Object) UnsafeQueueUserWorkItem(WaitCallback, Object) UnsafeQueueUserWorkItem(WaitCallback, Object)

Stellt den angegebenen Delegaten in eine Warteschlange für den Threadpool, leitet die Aufrufliste jedoch nicht an den Arbeitsthread weiter.Queues the specified delegate to the thread pool, but does not propagate the calling stack to the worker thread.

UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean) UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean) UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean) 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.Queues a method specified by an Action<T> delegate for execution, and specifies an object containing data to be used by the method. Die Methode wird ausgeführt, wenn ein Thread des Threadpools verfügbar wird.The method executes when a thread pool thread becomes available.

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean) UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean) UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean) UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Fügt das angegebene Arbeitselementobjekt in die Warteschlange des Threadpools ein.Queues the specified work item object to the thread pool.

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 IThreadPoolWorkItem IThreadPoolWorkItem IThreadPoolWorkItem

Das aufzurufende Arbeitselement, wenn ein Thread im Threadpool das Arbeitselement aufruft.The work item to invoke when a thread in the thread pool picks up the work item.

preferLocal
Boolean Boolean Boolean 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.true to prefer queueing the work item in a queue close to the current thread; false to prefer queueing the work item to the thread pool's shared queue.

Gibt zurück

true, wenn die Methode erfolgreich ist. OutOfMemoryException wird ausgelöst, wenn die Arbeitsaufgabe nicht in die Warteschlange gestellt werden konnte.true if the method succeeds; OutOfMemoryException is thrown if the work item could not be queued.

Ausnahmen

Das Arbeitselement konnte nicht in die Warteschlange eingereiht werden.The work item could not be queued.

Hinweise

Der Thread Pool Ruft die Execute()-Methode des Arbeits Elements auf.The thread pool will invoke the work item's Execute() method. Es liegt in der Verantwortung des Arbeits Elements, ExecutionContext zu propagieren, wenn es benötigt wird. der Thread Pool wird dies nicht tun.It is the responsibility of that work item to propagate ExecutionContext if it's needed; the thread pool will not do so.

UnsafeQueueUserWorkItem(WaitCallback, Object) UnsafeQueueUserWorkItem(WaitCallback, Object) UnsafeQueueUserWorkItem(WaitCallback, Object) UnsafeQueueUserWorkItem(WaitCallback, Object)

Stellt den angegebenen Delegaten in eine Warteschlange für den Threadpool, leitet die Aufrufliste jedoch nicht an den Arbeitsthread weiter.Queues the specified delegate to the thread pool, but does not propagate the calling stack to the worker thread.

public:
 static bool UnsafeQueueUserWorkItem(System::Threading::WaitCallback ^ callBack, System::Object ^ state);
[System.Security.SecurityCritical]
public static bool UnsafeQueueUserWorkItem (System.Threading.WaitCallback callBack, object state);
static member UnsafeQueueUserWorkItem : System.Threading.WaitCallback * obj -> bool
Public Shared Function UnsafeQueueUserWorkItem (callBack As WaitCallback, state As Object) As Boolean

Parameter

callBack
WaitCallback WaitCallback WaitCallback WaitCallback

Ein WaitCallback, der den Delegaten darstellt, der aufgerufen werden soll, wenn ein Thread im Threadpool die Arbeitsaufgabe aufnimmt.A WaitCallback that represents the delegate to invoke when a thread in the thread pool picks up the work item.

state
Object Object Object Object

Das Objekt, das an den Delegaten übergeben wird, wenn die Bearbeitung aus dem Threadpool erfolgt.The object that is passed to the delegate when serviced from the thread pool.

Gibt zurück

true, wenn die Methode erfolgreich ist. OutOfMemoryException wird ausgelöst, wenn die Arbeitsaufgabe nicht in die Warteschlange gestellt werden konnte.true if the method succeeds; OutOfMemoryException is thrown if the work item could not be queued.

Ausnahmen

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Es war nicht genügend Arbeitsspeicher vorhanden.An out-of-memory condition was encountered.

Das Arbeitselement konnte nicht in die Warteschlange eingereiht werden.The work item could not be queued.

Hinweise

Anders als bei der QueueUserWorkItem-Methode gibt UnsafeQueueUserWorkItem den aufrufenden Stapel nicht an den Arbeits Thread weiter.Unlike the QueueUserWorkItem method, UnsafeQueueUserWorkItem does not propagate the calling stack to the worker thread. Dies ermöglicht es dem Code, den aufrufenden Stapel zu verlieren und dadurch seine Sicherheits Privilegien zu erhöhen.This allows code to lose the calling stack and thereby to elevate its security privileges.

Achtung

Die Verwendung von UnsafeQueueUserWorkItem könnte versehentlich eine Sicherheitslücke eröffnen.Using UnsafeQueueUserWorkItem could inadvertently open up a security hole. Die Code Zugriffssicherheit basiert auf den Berechtigungs Überprüfungen für die Berechtigungen aller Aufrufer auf dem Stapel.Code access security bases its permission checks on the permissions of all the callers on the stack. Wenn die Arbeit in einem Thread Pool Thread mithilfe von UnsafeQueueUserWorkItem in die Warteschlange eingereiht wird, verfügt der Stapel des Thread Pool Threads nicht über den Kontext der eigentlichen Aufrufer.When work is queued on a thread pool thread using UnsafeQueueUserWorkItem, the stack of the thread pool thread will not have the context of the actual callers. Bösartiger Code kann dies ausnutzen, um Berechtigungs Überprüfungen zu vermeiden.Malicious code might be able exploit this to avoid permission checks.

Sicherheit

SecurityCriticalAttribute
Erfordert volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer.Requires full trust for the immediate caller. Dieser Member kann nicht von teilweise vertrauenswürdigem oder transparentem Code verwendet werden.This member cannot be used by partially trusted or transparent code.

Siehe auch

UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean) UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean) UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean) 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.Queues a method specified by an Action<T> delegate for execution, and specifies an object containing data to be used by the method. Die Methode wird ausgeführt, wenn ein Thread des Threadpools verfügbar wird.The method executes when a thread pool thread becomes available.

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.The type of elements of state.

Parameter

callBack
Action<TState>

Ein Delegat, der die auszuführende Methode darstellt.A delegate representing the method to execute.

state

Ein Objekt, das die von der Methode zu verwendenden Daten enthält.An object containing data to be used by the method.

preferLocal
Boolean Boolean Boolean 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.true to prefer queueing the work item in a queue close to the current thread; false to prefer queueing the work item to the thread pool's shared queue.

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.true if the method is successfully queued; NotSupportedException is thrown if the work item could not be queued.

Ausnahmen

Das Arbeitselement konnte nicht in die Warteschlange eingereiht werden.The work item could not be queued.

Gilt für: