TaskScheduler.TryExecuteTaskInline(Task, Boolean) Metoda

Definice

Určuje, zda je možné zadané Task spuštění synchronně provést v tomto volání, a pokud je to možné, 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, co Task 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, může být úloha 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í se provádí, aby se úkol spustil vložený do fronty bez jeho řazení do fronty.

Návraty

Boolean

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

Atributy

Výjimky

Argument task je null.

task byl spuštěný.

Poznámky

Třída odvozená z TaskScheduler implementuje tuto funkci tak, aby podporovala vložené provádění úlohy ve vlákně, které inicializuje čekání na daný objekt úkolu. Vložené spouštění je volitelné a požadavek může být odmítnut vrácením hodnoty false. Čím více úkolů se ale dá vyčíst, tím lepší bude plánovač škálovat. Plánovač, který je příliš malý, může být 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žená. Pokud například plánovač používá vyhrazené vlákno ke spouštění úloh, všechny vložené požadavky z tohoto vlákna by měly být úspěšné.

Pokud se plánovač rozhodne provést vložené provádění, měl by to provést voláním metody základní TaskScheduler TryExecuteTask 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í žádost. Mějte však na paměti, že za určitých okolností může být plánovač požádán o vložení úkolu, který nebyl dříve poskytnut s 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 naleznete v tématu TaskScheduler.

Platí pro

Viz také