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 von TaskScheduler abgeleitete Klasse implementiert diese Funktion, um die Inline Ausführung einer Aufgabe in einem Thread zu unterstützen, der einen Warte Vorgang auf dieses Aufgaben 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. Die Inline Ausführung ist optional, und die Anforderung kann zurückgewiesen werden, indem Sie false zurückgeben.Inline execution is optional, and the request may be rejected by returning false. Die mehr Aufgaben, die Inline sein können, desto besser wird der Planer skalieren.However, the more tasks that can be inlined, the better the scheduler will scale. Tatsächlich kann ein Scheduler, der zu wenig Zeilen zuweist, anfällig für Deadlocks werden.In fact, a scheduler that inlines too little may be prone to deadlocks. Eine ordnungsgemäße Implementierung sollte sicherstellen, dass eine Anforderung, die unter den vom Planer garantierten Richtlinien ausgeführt wird, erfolgreich Inline ausgeführt werden kann.A proper implementation should ensure that a request executing under the policies guaranteed by the scheduler can successfully inline. Wenn ein Planer z. b. einen dedizierten Thread zum Ausführen von Aufgaben verwendet, sollten alle inlining-Anforderungen von diesem Thread erfolgreich sein.For example, if a scheduler uses a dedicated thread to execute tasks, any inlining requests from that thread should succeed.

Wenn ein Scheduler beschließt, die Inline Ausführung auszuführen, sollte dies durch Aufrufen der- TryExecuteTask Methode des Basis Task Schedulers mit dem bereitgestellten Aufgaben Objekt erfolgen, wobei der Rückgabewert weitergegeben wird.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 sinnvoll sein, eine Inline Aufgabe aus den internen Datenstrukturen zu entfernen, wenn Sie die Inlining-Anforderung beachten soll.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 ein Scheduler unter bestimmten Umständen aufgefordert werden kann, eine Aufgabe Inline zu übernehmen, die zuvor nicht mit der QueueTask -Methode bereitgestellt wurde.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 Scheduler ist dafür verantwortlich, sicherzustellen, dass der aufrufende Thread für die Ausführung der angegebenen Aufgabe geeignet ist, soweit es seine eigenen Planungs-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