TaskScheduler.TryExecuteTaskInline(Task, Boolean) TaskScheduler.TryExecuteTaskInline(Task, Boolean) TaskScheduler.TryExecuteTaskInline(Task, Boolean) Method

Definition

Bestimmt, ob der angegebene Task in diesem Aufruf synchron ausgeführt werden kann, und führt ihn aus, wenn dies der Fall ist.Determines whether the provided Task can be executed synchronously in this call, and if it can, executes it.

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);
abstract member TryExecuteTaskInline : System.Threading.Tasks.Task * bool -> bool

Parameter

task
Task Task Task

Das auszuführende Task.The Task to be executed.

taskWasPreviouslyQueued
Boolean Boolean Boolean

Ein boolescher Wert, der angibt, ob die Aufgabe zuvor in die Warteschlange eingereiht wurde.A Boolean denoting whether or not task has previously been queued. Wenn dieser Parameter true ist, wurde die Aufgabe möglicherweise zuvor in die Warteschlange eingereiht (geplant). Ist er false, wurde die Aufgabe bekanntermaßen nicht in die Warteschlange eingereiht, und dieser Aufruf wird ausgeführt, um die Aufgabe inline auszuführen, ohne sie in die Warteschlange einzureihen.If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it.

Gibt zurück

Ein boolescher Wert, der angibt, ob die Aufgabe inline ausgeführt wurde.A Boolean value indicating whether the task was executed inline.

Ausnahmen

Das task-Argument ist null.The task argument is null.

Der task wurde bereits ausgeführt.The task was already executed.

Hinweise

Eine abgeleitete Klasse TaskScheduler implementiert diese Funktion, um Inline-Ausführung einer Aufgabe in einem Thread zu unterstützen, eine Wartezeit, Task-Objekt initiiert.A class derived from TaskScheduler implements this function to support inline execution of a task on a thread that initiates a wait on that task object. Inline-Ausführung ist optional, und die Anforderung möglicherweise abgelehnt, indem Sie "false" zurückgeben.Inline execution is optional, and the request may be rejected by returning false. Allerdings mehr Aufgaben können inline gesetzt werden, desto bessere das Zeitplanungsmodul wird skaliert.However, the more tasks that can be inlined, the better the scheduler will scale. In der Tat kann ein Planer, Inlines zu wenig zu Deadlocks sein.In fact, a scheduler that inlines too little may be prone to deadlocks. Eine ordnungsgemäße Implementierung sorgen dafür, dass eine Anforderung, die unter den Richtlinien, die vom Scheduler garantiert ausgeführt Inline können.A proper implementation should ensure that a request executing under the policies guaranteed by the scheduler can successfully inline. Z. B. sollten ein Planer einen dedizierten Thread zum Ausführen von Tasks verwendet wird, alle inlining Anforderungen aus diesem Thread erfolgreich.For example, if a scheduler uses a dedicated thread to execute tasks, any inlining requests from that thread should succeed.

Wenn Sie ein Planer für die Inlineausführung entscheidet, sollte dies durch den Aufruf von der Basisklasse TaskScheduler TryExecuteTask Methode mit der angegebenen Aufgabe-Objekt, das Weitergeben des zurückgegeben Wert.If a scheduler decides to perform the inline execution, it should do so by calling to the base TaskScheduler's TryExecuteTask method with the provided task object, propagating the return value. Es kann auch sein für den Scheduler so, dass eine Inline-Aufgabe aus der internen Datenstrukturen zu entfernen, wenn er entscheidet, die inlineersetzung Anforderung berücksichtigt.It may also be appropriate for the scheduler to remove an inlined task from its internal data structures if it decides to honor the inlining request. Beachten Sie jedoch, dass unter bestimmten Umständen ein Planer inlineersetzung eine Aufgabe eventuell aufgefordert werden, die mit nicht zuvor bereitgestellt wurde die QueueTask Methode.Note, however, that under some circumstances a scheduler may be asked to inline a task that was not previously provided to it with the QueueTask method.

Der abgeleitete Planer ist dafür verantwortlich, dass Sie sicher, dass der aufrufende Thread eignet sich für die Ausführung der angegebenen Aufgabe soweit es die eigene Planung und Ausführungsrichtlinien betrifft.The derived scheduler is responsible for making sure that the calling thread is suitable for executing the given task as far as its own scheduling and execution policies are concerned.

Weitere Informationen finden Sie unter TaskScheduler.For more information, see TaskScheduler.

Gilt für:

Siehe auch