cevap
Evet. Yan etki şu: , bir milyon göreviniz varsa, potansiyel olarak bir milyon iş parçacığı oluşturabilirsiniz.
her iplik yükü anahtarlama havai ve bağlamı onun bellek getirecektir dikkate almak gerekiyor. Bellek yükü o kadar da küçük değil, biz bir kaç MB burada konuşuyoruz, hatta binlerce ürünle bile sorun yaşayabilirsiniz.
LongRunning görevler kullanmayın gibi herhangi bir yan etkileri vardır, diğer engellemesini önlemek amacıyla küresel ve yerel kuyruklar, baypas gönderileceğini belirten Yerel kuyrukta sonra gelen iplikler.
Bu, Uzun Çalıştırma görevlerinin çoğuna sahipseniz, normalden daha fazla iş parçacığı oluşturabilir.
Bu soru üzerine cevapların bazı olumsuz özellikler görebilirsiniz:
Biraz daha net olmak için güncelleştirildi (ve umarım daha çok MSDN'in ne söylediğine inline) – Holger
LongRunning
seçeneği (bu eğer iş parçacığı havuzu büyük olasılıkla olacak DefaultScheduler
destekli) o olmayan bir threadpool Konu üzerinde Task
yürütmek tercih edebilir anlamına programlayıcıya bir ipucu. LongRunning
seçeneğinin bir yan etkisi, bu Görev için Görev Çizgisine izin verilmemesidir. Bu, LongRunning
Görevinin diğer iç içe geçmiş veya alt görevler oluşturduğu ve bu Görevlerden herhangi birinde Wait
çağrıları oluşturulduğunda, her zaman farklı bir iş parçacığı üzerinde gömülü olmak yerine (yani, Wait
işlemini gerçekleştiren aynı iş parçacığında çalıştırılacak) olacağı anlamına gelir. uzun zaman alabilir Görevler çok sayıda oluşturarak LongRunning
ipucu hala Konular sayısında artmasını neden olabilecek olmadan tamamlamak için dikkati çekiyor başkalarının cevapları bağlamında
DefaultScheduler
'un kullandığı enjeksiyon algoritması. Algoritma havuzu engellenen ve uzun bir süre için bir iş öğesi çalıştırmış olan havuzlar arasında ayrım yapmaz ve her iki durumda da iş akışını artırmak için havuza daha fazla iş parçacığı enjekte ederek yanıt verebilir.
Reflectoring, .NET 4.0'dan itibaren ipucunu gösterir. her zaman uyulur. – usr
- 1. Best Practice LongRunning Görev oluşturma
- 2. Görev zamanlayıcı seçeneği devre dışı
- 3. Google Görev Yöneticisi Farklı görevlere taşı Görev
- 4. Görev
- 5. görev
- 6. Bir devam görev görev örneğini nasıl başlatırım?
- 7. Unity3D'de Bir Görev Sisteminin Uygulanması
- 8. VBA - Outlook - Paylaşılan Görev Listesinde Görev Oluşturma
- 9. C# Görev Görev Zamanlayıcısı 2.0 için API
- 10. Erişim Rake Görev Açıklama Görev içinden
- 11. Program görev açısından "görev benzeşimi" ayarını
- 12. C# uygulamasında görev yöneticisi olarak görev değiştirme
- 13. Temiz görev nasıl eklenir - Görev 'temiz' bulunamadı
- 14. Kereviz - başka bir görev
- 15. Bir görev beklemeden başlatın
- 16. Görev Çalıştırıcısı?
- 17. Görev Django-kereviz kullanmak ve böyle bir görev var
- 18. Alt görev olan bir görev listesi için veritabanı tasarımı
- 19. Gulp-izle görev
- 20. Proses Ağacı - İzleme/Görev Listesi
- 21. Haskell ithalatının yan etkileri var mı?
- 22. Neden = ~ operatörünün bazen yan etkileri oluyor?
- 23. Data :: Dumper() 'ın yan etkileri nelerdir?
- 24. Yan etkileri varsa fonksiyonlar optimize edilebilir mi?
- 25. Android'de kaldırıldığında bir görev gerçekleştirin
- 26. Bir Beklenmeyen Soğuk Görev Oluşturun
- 27. Bir Jira öyküsü/Epic/Görev
- 28. C# Bir değer döndüren görev
- 29. Uzaktan programlanmış bir görev başlatma
- 30. Flask'ta eşzamansız bir görev gerçekleştirme
http://stackoverflow.com/questions/3105988/task-parallel-library-taskcreationoptions-longrunning-option-and-threadpool, tarayıcınızda soru başlığı girdiğinizde otomatik tamamlama işlemi yapar mı? :) –
Onu buldum! http://msdn.microsoft.com/en-us/library/dd997402.aspx – Aliostad