JoinableTaskFactory.DisableProcessing 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í.
Zabraňuje spuštění filtrovaných zpráv čerpadel během synchronních čekání na okolí JoinableTask.
public Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation DisableProcessing();
member this.DisableProcessing : unit -> Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation
Public Function DisableProcessing () As JoinableTaskFactory.ProcessingDisabledOperation
Návraty
Hodnota, která může být uvolněna, když je potřeba potlačit synchronní čekací čerpadla je ukončena. Případně může být zahozen, pokud má zbytek JoinableTask zpracování zakázat.
Výjimky
Vyvolá se při zavolání mimo kontext objektu JoinableTask.
Příklady
Tady je jednoduché běžné použití této metody:
Tady jsou další příklady toho, jak se dá použít:
Poznámky
Během výnosu await uvnitř JoinableTask, žádná zpráva pumpa nikdy neběží bez ohledu na to, zda je tato metoda volána, s výjimkou interní, který umožňuje pouze relevantní práci. Když se uživatelský kód spustí v rámci delegáta JoinableTask nebo jeho volaných, které nakonec vyžadují synchronní blok hlavního vlákna (např. synchronní vstupně-výstupní operace nebo kolize zámků), obvykle se toto čekání implementuje voláním Wait(IntPtr[], Boolean, Int32)Current. Výchozí implementace této metody umožňuje určité přerušení (e.g. COM volání RPC), které se mohou v určitých situacích vyhnout zablokování.
Volání této metody nahradí výchozí implementaci Wait(IntPtr[], Boolean, Int32) jedné, která nepovolí takové přerušení, zatímco je JoinableTask aktivní a řídí Current. Vzhledem k tomu, že tato metoda může být volána vícekrát, tento účinek zůstává na cíli JoinableTask , dokud DisableProcessing() nebudou všechny návratové hodnoty vyvolány (v libovolném pořadí). Účinek se vztahuje pouze na přímé JoinableTask. Nemá vliv na žádné z jeho dětí nebo rodičů.
Zakázání zpracování nemá žádný vliv na operační systémy, které nejsou Windows.
Zrušení výsledné hodnoty se vrátí k výchozímu chování. Volající nemusí tuto hodnotu nikdy likvidovat, pokud záměrem je zakázat zpracování po zbytek JoinableTasktohoto spuštění.