TaskScheduler.TryExecuteTaskInline(Task, Boolean) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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.