TaskScheduler.TryExecuteTaskInline(Task, Boolean) Metoda

Definice

Určuje, zda je možné zadané spuštění Task synchronně v tomto volání, a pokud ano, provede ho.

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

Parametry

task
Task

To Task , co se má provést.

taskWasPreviouslyQueued
Boolean

Logická hodnota označující, jestli byla úloha dříve zařazena do fronty. Pokud je tento parametr True, je možné, že úloha byla dříve zařazena do fronty (naplánováno); pokud je false, pak je známo, že úloha nebyla zařazena do fronty a toto volání je provedeno, aby bylo možné spustit úlohu vloženou do fronty, aniž by byla zařazena do fronty.

Návraty

Logická hodnota označující, jestli se úloha spustila jako vložená.

Atributy

Výjimky

Argument task má hodnotu null.

Ten task byl již proveden.

Poznámky

Třída odvozená z TaskScheduler implementace této funkce podporuje vložené spuštění úlohy ve vlákně, které iniciuje čekání na daný objekt úkolu. Vložené spuštění je volitelné a požadavek může být odmítnut vrácením hodnoty false. Čím více úkolů je však možné vyčíst, tím lépe se plánovač škáluje. Ve skutečnosti může být plánovač, který je příliš malý, náchylný k zablokování. Správná implementace by měla zajistit, aby žádost spuštěná v rámci zásad zaručených plánovačem byla úspěšně vložena. Pokud například plánovač používá k provádění úloh vyhrazené vlákno, měly by všechny vložené požadavky z tohoto vlákna proběhnout úspěšně.

Pokud se plánovač rozhodne provést vložené spuštění, měl by to provést voláním základní TaskScheduler TryExecuteTask metody s poskytnutým objektem úkolu, šířením návratové hodnoty. Může být také vhodné, aby plánovač odebral vložený úkol z interních datových struktur, pokud se rozhodne respektovat inlinovací požadavek. Upozorňujeme však, že za určitých okolností může být plánovač požádán o vložení úkolu, který nebyl dříve poskytnut metodou QueueTask .

Odvozený plánovač zodpovídá za zajištění, že volající vlákno je vhodné pro provádění daného úkolu, pokud jde o vlastní zásady plánování a provádění.

Další informace najdete na webu TaskScheduler.

Platí pro

Viz také