TaskScheduler.TryExecuteTaskInline(Task, Boolean) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Avgör om den angivna Task kan köras synkront i det här anropet och kör den om den kan.
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
Parametrar
- taskWasPreviouslyQueued
- Boolean
En boolesk som anger om uppgiften har placerats i kö tidigare. Om den här parametern är True kan uppgiften ha placerats i kö tidigare (schemalagd); Om det är falskt är det känt att aktiviteten inte har placerats i kö, och det här anropet görs för att köra aktiviteten infogat utan att köa den.
Returer
Ett booleskt värde som anger om aktiviteten kördes infogat.
- Attribut
Undantag
Argumentet task är null.
Har task redan körts.
Kommentarer
En klass som härleds från TaskScheduler implementerar den här funktionen för att stödja infogad körning av en aktivitet i en tråd som initierar en väntan på aktivitetsobjektet. Infogad körning är valfritt och begäran kan avvisas genom att falskt returneras. Men ju fler aktiviteter som kan infogas, desto bättre skalas schemaläggaren. Faktum är att en schemaläggare som infogar för lite kan vara benägen att dödlägen. En korrekt implementering bör säkerställa att en begäran som körs enligt de principer som garanteras av schemaläggaren kan infogas. Om en schemaläggare till exempel använder en dedikerad tråd för att köra uppgifter, bör alla inliningsbegäranden från den tråden lyckas.
Om en schemaläggare bestämmer sig för att utföra den infogade körningen bör den göra det genom att anropa till den grundläggande TaskScheduler-metoden med det angivna aktivitetsobjektet TryExecuteTask och sprida returvärdet. Det kan också vara lämpligt för schemaläggaren att ta bort en inlined uppgift från sina interna datastrukturer om den bestämmer sig för att uppfylla inliningsbegäran. Observera dock att en schemaläggare under vissa omständigheter kan uppmanas att infoga en uppgift som inte tidigare har tillhandahållits till den QueueTask med metoden.
Den härledda schemaläggaren ansvarar för att se till att den anropande tråden är lämplig för att köra den angivna uppgiften när det gäller dess egna schemaläggnings- och körningsprinciper.
Mer information finns i TaskScheduler.