TaskScheduler.TryExecuteTaskInline(Task, Boolean) Methode

Definition

Bestimmt, ob die bereitgestellte Bereitstellung synchron in diesem Aufruf ausgeführt werden kann und ob dies Task möglich ist, führt sie aus.

protected:
 abstract bool TryExecuteTaskInline(System::Threading::Tasks::Task ^ task, bool taskWasPreviouslyQueued);
[System.Security.SecurityCritical]
protected abstract bool TryExecuteTaskInline(System.Threading.Tasks.Task task, bool taskWasPreviouslyQueued);
protected abstract bool TryExecuteTaskInline(System.Threading.Tasks.Task task, bool taskWasPreviouslyQueued);
[<System.Security.SecurityCritical>]
abstract member TryExecuteTaskInline : System.Threading.Tasks.Task * bool -> bool
abstract member TryExecuteTaskInline : System.Threading.Tasks.Task * bool -> bool
Protected MustOverride Function TryExecuteTaskInline (task As Task, taskWasPreviouslyQueued As Boolean) As Boolean

Parameter

task
Task

Der Task auszuführende

taskWasPreviouslyQueued
Boolean

Ein boolescher Wert, der angibt, ob zuvor eine Aufgabe in die Warteschlange gestellt wurde. Wenn dieser Parameter "True" lautet, wurde der Vorgang möglicherweise zuvor in die Warteschlange eingereiht (geplant); wenn False, dann ist der Vorgang nicht in die Warteschlange eingereiht worden, und dieser Aufruf wird ausgeführt, um die Aufgabe inline auszuführen, ohne sie in die Warteschlange zu stellen.

Gibt zurück

Ein boolescher Wert, der angibt, ob die Aufgabe inline ausgeführt wurde.

Attribute

Ausnahmen

Das task Argument ist NULL.

Der task Vorgang wurde bereits ausgeführt.

Hinweise

Eine von TaskScheduler dieser Funktion abgeleitete Klasse unterstützt die Inlineausführung einer Aufgabe in einem Thread, der eine Wartezeit für dieses Aufgabenobjekt initiiert. Die Inlineausführung ist optional, und die Anforderung kann durch Zurückgeben von "false" abgelehnt werden. Je mehr Vorgänge jedoch inlineiert werden können, desto besser wird der Zeitplan skaliert. Tatsächlich kann ein Planer, der zu wenig inlinest zu anfällig für Deadlocks sein kann. Eine ordnungsgemäße Implementierung sollte sicherstellen, dass eine Anforderung, die unter den vom Scheduler garantierten Richtlinien ausgeführt wird, erfolgreich inline ausgeführt werden kann. Wenn ein Scheduler beispielsweise einen dedizierten Thread zum Ausführen von Aufgaben verwendet, sollten alle Inlininganforderungen dieses Threads erfolgreich sein.

Wenn ein Scheduler entscheidet, die Inlineausführung auszuführen, sollte dies durch Aufrufen der TaskScheduler-Basismethode TryExecuteTask mit dem bereitgestellten Aufgabenobjekt erfolgen, wodurch der Rückgabewert weitergegeben wird. Es kann auch für den Planer geeignet sein, einen inlineierten Vorgang aus seinen internen Datenstrukturen zu entfernen, wenn er entscheidet, die Inlininganforderung zu berücksichtigen. Beachten Sie jedoch, dass unter bestimmten Umständen ein Planer aufgefordert werden kann, einen Vorgang inline zu setzen, der zuvor nicht mit der QueueTask Methode bereitgestellt wurde.

Der abgeleitete Scheduler ist dafür verantwortlich, sicherzustellen, dass der aufrufende Thread für die Ausführung des angegebenen Vorgangs geeignet ist, soweit es sich um eigene Planungs- und Ausführungsrichtlinien handelt.

Weitere Informationen finden Sie unter TaskScheduler.

Gilt für:

Weitere Informationen