Aracılığıyla paylaş


İş parçacığı havuzu kullanımı için en iyi uygulamalar

Bu konu, iş parçacığı havuzuyla verimli çalışmak için en iyi yöntemleri açıklar.

Yapılması Gerekenler

  • Uygulamanızda paralel görevler yürütmek için thread pool'u kullanın.

  • Ui iş parçacığını engellemeden genişletilmiş görevleri gerçekleştirmek için iş öğelerini kullanın.

  • Kısa ömürlü ve bağımsız iş öğeleri oluşturun. İş öğeleri zaman uyumsuz olarak çalışır ve kuyruktan herhangi bir sırada havuza gönderilebilir.

  • Windows.UI.Core.CoreDispatcherile kullanıcı arabirimi iş parçacığına güncelleştirmeler gönderin.

  • Uyku işlevi yerine ThreadPoolTimer.CreateTimer kullanın.

  • Kendi iş parçacığı yönetim sisteminizi oluşturmak yerine iş parçacığı havuzunu kullanın. İş parçacığı havuzu gelişmiş yetenekle işletim sistemi düzeyinde çalışır ve işlem içindeki ve sistem genelindeki cihaz kaynaklarına ve etkinliğine göre dinamik olarak ölçeklendirilecek şekilde iyileştirilmiştir.

  • C++'ta, iş öğesi temsilcilerinin çevik iş parçacığı modelini kullandığından emin olun (C++ temsilcileri varsayılan olarak çeviktir).

  • Kullanım sırasında kaynak ayırma hatasını tolere edemiyorsanız önceden ayrılmış iş öğelerini kullanın.

Yapılmaması Gerekenler

  • süre değeri 1 milisaniye (0 dahil) <düzenli süreölçerler oluşturmayın. Bu, iş öğesinin tek kullanımlık bir zamanlayıcı gibi davranmasına neden olur.

  • tamamlanması dönem parametresinde belirttiğiniz süreden daha uzun olan düzenli çalışma öğelerini göndermeyin.

  • Arka plan görevinden gelen bir iş öğesinden kullanıcı arabirimi güncellemeleri (uçan bildirimler ve genel bildirimler dışında) göndermeye çalışmayın. Bunun yerine, arka plan görevi ilerleme durumunu ve tamamlama işleyicilerini kullanın; örneğin, IBackgroundTaskInstance.Progress.

  • Zaman uyumsuz anahtar sözcüğünü kullanan iş öğesi işleyicilerini kullandığınızda, iş öğesinde tam durum ayarlandığında işleyicideki tüm kodun yürütüldüğünü varsaymayın. İş parçacığı havuzu iş öğesi, işleyicideki tüm kod yürütülmeden önce tam duruma ayarlanabilir. İş öğesi tam duruma ayarlandıktan sonra işleyici içinde bir await anahtar sözcüğünü izleyen kod yürütülebilir.

  • Önceden ayrılmış bir iş öğesini yeniden başlatmadan birden çok kez çalıştırmayı denemeyin. Periyodik iş öğesi oluşturma