TaskScheduler.TryExecuteTaskInline(Task, Boolean) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Determina se l'oggetto specificato Task può essere eseguito in modo sincrono in questa chiamata e, se possibile, lo esegue.
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
Parametri
- taskWasPreviouslyQueued
- Boolean
Valore booleano che indica se l'attività è stata o meno accodata in precedenza. Se questo parametro è True, l'attività potrebbe essere stata accodata in precedenza (pianificata); se False, l'attività non è stata accodata e questa chiamata viene eseguita per eseguire l'attività inline senza accodarla.
Valori restituiti
Valore booleano che indica se l'attività è stata eseguita inline.
- Attributi
Eccezioni
L'argomento task è Null.
L'oggetto task è già stato eseguito.
Commenti
Una classe derivata da TaskScheduler implementa questa funzione per supportare l'esecuzione inline di un'attività in un thread che avvia un'attesa sull'oggetto attività. L'esecuzione inline è facoltativa e la richiesta può essere rifiutata restituendo false. Tuttavia, più attività possono essere inlinedi, migliore sarà la scalabilità dell'utilità di pianificazione. In effetti, un'utilità di pianificazione che inline troppo poco può essere soggetta a deadlock. Un'implementazione corretta deve garantire che una richiesta eseguita con i criteri garantiti dall'utilità di pianificazione possa essere inline correttamente. Ad esempio, se un'utilità di pianificazione usa un thread dedicato per eseguire attività, tutte le richieste di inlining da tale thread devono avere esito positivo.
Se un'utilità di pianificazione decide di eseguire l'esecuzione inline, deve farlo chiamando il metodo taskScheduler di TryExecuteTask base con l'oggetto attività fornito, propagando il valore restituito. Può anche essere opportuno per l'utilità di pianificazione rimuovere un'attività inlined dalle relative strutture di dati interne se decide di rispettare la richiesta di inlining. Si noti, tuttavia, che in alcune circostanze un'utilità di pianificazione potrebbe essere richiesta di inline un'attività non fornita in precedenza con il QueueTask metodo .
L'utilità di pianificazione derivata è responsabile di assicurarsi che il thread chiamante sia adatto per l'esecuzione dell'attività specificata per quanto riguarda la pianificazione e i criteri di esecuzione.
Per altre informazioni, vedere TaskScheduler.