TaskScheduler.TryExecuteTaskInline(Task, Boolean) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa, czy podane Task dane mogą być wykonywane synchronicznie w tym wywołaniu, a jeśli może, wykonuje je.
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
Wartość logiczna określająca, czy zadanie zostało wcześniej w kolejce. Jeśli ten parametr ma wartość True, zadanie mogło zostać wcześniej w kolejce (zaplanowane); jeśli wartość False, wiadomo, że zadanie nie zostało w kolejce, a to wywołanie jest wykonywane w celu wykonania zadania wbudowanego bez kolejkowania.
Zwraca
Wartość logiczna wskazująca, czy zadanie zostało wykonane w tekście.
- Atrybuty
Wyjątki
Argument task
ma wartość null.
Element task
został już wykonany.
Uwagi
Klasa utworzona na podstawie TaskScheduler implementacji tej funkcji obsługuje wbudowane wykonywanie zadania w wątku, który inicjuje oczekiwanie na ten obiekt zadania. Wykonywanie wbudowane jest opcjonalne, a żądanie może zostać odrzucone przez zwrócenie wartości false. Jednak tym więcej zadań, które mogą być wbudowane, tym lepiej harmonogram będzie skalowany. W rzeczywistości harmonogram, który jest zbyt mały, może być podatny na zakleszczenia. Właściwa implementacja powinna zapewnić, że żądanie wykonywane w ramach zasad gwarantowanych przez harmonogram może pomyślnie w tekście. Jeśli na przykład harmonogram używa dedykowanego wątku do wykonywania zadań, wszelkie żądania dotyczące tworzenia podwątku z tego wątku powinny zakończyć się powodzeniem.
Jeśli harmonogram zdecyduje się wykonać wykonywanie wbudowane, należy to zrobić, wywołując metodę base TaskScheduler TryExecuteTask z podanym obiektem zadania, propagując wartość zwracaną. Może być również odpowiednie, aby harmonogram usunął zadanie ze swoich wewnętrznych struktur danych, jeśli zdecyduje się przestrzegać żądania tworzenia podkreślenia. Należy jednak pamiętać, że w pewnych okolicznościach harmonogram może zostać poproszony o wkreślinie zadania, które nie zostało wcześniej dostarczone do niego za QueueTask pomocą metody .
Harmonogram pochodny jest odpowiedzialny za upewnienie się, że wątek wywołujący jest odpowiedni do wykonywania danego zadania, jeśli chodzi o jego własne zasady planowania i wykonywania.
Aby uzyskać więcej informacji, zobacz TaskScheduler.