Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Toto téma popisuje osvědčené postupy pro práci s fondem vláken.
Co dělat
Pomocí fondu vláken můžete v aplikaci pracovat paralelně.
Pomocí pracovních položek můžete provádět rozšířené úlohy bez blokování vlákna uživatelského rozhraní.
Vytvořte pracovní položky, které jsou krátkodobé a nezávislé. Pracovní úlohy běží asynchronně a lze je z fronty odesílat do fondu v libovolném pořadí.
Odešle aktualizace do vlákna uživatelského rozhraní. V aplikacích WinUI 3 použijte
DispatcherQueue.TryEnqueuezMicrosoft.UI.Dispatching.DispatcherQueue.Místo funkce Sleep použijte ThreadPoolTimer.CreateTimer.
Místo vytváření vlastního systému pro správu vláken použijte fond vláken. Fond vláken funguje na úrovni operačního systému, nabízí pokročilé možnosti a je optimalizován tak, aby se dynamicky přizpůsoboval prostředkům zařízení a jeho aktivitě v rámci procesu i napříč systémem.
V jazyce C++ se ujistěte, že delegáti pracovních položek používají agilní model vláken (delegáti C++ jsou ve výchozím nastavení agilní).
Pokud nemůžete tolerovat selhání přidělení prostředků v době použití, použijte předem přidělené pracovní položky.
Zakázané činnosti
Nevytvávejte pravidelné časovače s hodnotou<období 1 milisekund (včetně 0). To způsobí, že pracovní položka bude fungovat jako jednorázový časovač.
Neodesílejte pravidelné pracovní položky, které trvá déle, než je doba, kterou jste zadali v parametru období .
Nepokoušejte se odesílat aktualizace uživatelského rozhraní (jiné než informační zprávy a oznámení) z pracovní položky odeslané z úlohy na pozadí. Místo toho použijte průběh úlohy na pozadí a obslužné rutiny pro dokončení – například IBackgroundTaskInstance.Progress.
Pokud používáte obslužné rutiny pracovních položek, které používají klíčové slovo async, nepředpokládejte, že veškerý kód v obslužné rutině byl proveden, když je u pracovní položky nastaven stav Dokončeno. Pracovní položka fondu vláken může být označena jako dokončená ještě předtím, než se vykoná veškerý kód v obslužné rutině. Kód následující po klíčovém slovu await v obslužné rutině se může spustit po nastavení pracovní položky na úplný stav.
Nepokoušejte se spustit předem přidělenou pracovní položku více než jednou, aniž byste ji znovu inicializovali. Vytvoření pravidelné pracovní položky
Příbuzná témata
Windows developer