Ajánlott eljárások a szálkészlet használatához

Ez a témakör a szálkészlet használatának ajánlott eljárásait ismerteti.

Tennivalók

  • Használja a szálkészletet párhuzamos feladatok végrehajtására az alkalmazásában.

  • A munkaelemek használatával a felhasználói felületi szál blokkolása nélkül végezhet el kiterjesztett feladatokat.

  • Rövid élettartamú és független munkaelemeket hozhat létre. A munkaelemek aszinkron módon futnak, és a sorból tetszőleges sorrendben beküldhetők a poolba.

  • Frissítések küldése a felhasználói felületi szálra. A WinUI 3-alkalmazásokban használja a következőt: DispatcherQueue.TryEnqueue innen: Microsoft.UI.Dispatching.DispatcherQueue.

  • Az Alvás függvény helyett használja a ThreadPoolTimer.CreateTimer függvényt.

  • Használja a szálkészletet ahelyett, hogy saját szálkezelő rendszert hozna létre. A szálkészlet az operációs rendszer szintjén, fejlett képességgel fut, és úgy van optimalizálva, hogy dinamikusan skálázható legyen az eszköz erőforrásai és tevékenységei szerint a folyamaton és a rendszeren belül.

  • A C++-ban győződjön meg arról, hogy a munkaelemek delegáltjai az agilis szálmodellt használják (a C++ meghatalmazottak alapértelmezés szerint agilisak).

  • Előre lefoglalt munkaelemeket akkor használjon, ha nem tudja elviselni az erőforrás-foglalási hibát a használat során.

Kerülendők

  • Ne hozzon létre 1 ezredmásodperc értékű<periodikus időzítőket (beleértve a 0-t is). Ez azt eredményezi, hogy a munkaelem egyszeri időzítőként viselkedik.

  • Ne küldjön be olyan időszakos munkaelemeket, amelyek hosszabb időt vesznek igénybe, mint az időszakparaméterben megadott időtartam.

  • Ne próbáljon felhasználói felületi frissítéseket küldeni (a bejelentéseken és értesítéseken kívül) egy háttérfeladatból küldött munkaelemből. Ehelyett használjon háttérfeladat-előrehaladási és befejezési kezelőket – például IBackgroundTaskInstance.Progress.

  • Ha az aszinkron kulcsszót használó munkaelem-kezelőket használja, ne feltételezze, hogy a kezelőben lévő összes kód akkor lett végrehajtva, amikor a teljes állapot be lett állítva a munkaelemen. Előfordulhat, hogy a szálkészlet munkaeleme a teljes állapotra van állítva, mielőtt a kezelőben lévő összes kód végre lett hajtva. A kezelőn belül egy várakozó kulcsszót követő kód a munkaelem teljes állapotra való beállítása után is végrehajtható.

  • Ne próbálja meg többször futtatni az előre lefoglalt munkaelemet újraincializálás nélkül. Időszakos munkaelem létrehozása