Eşzamanlılık Analizörüne baktığımızda, Konularım uygulamasının göründüğümden çok, çok daha fazla iş parçacığı oluşturduğunu görüyoruz. Bunların çoğu ya "CLR Worker Thread" ya da "Worker Thread" dir.Bir CLR İşçi İş Parçacığı ile İşçi İş Parçacığı arasındaki fark nedir?
Farklılıklar nelerdir? Hangi koşullar altında yaratılır?
? Bunlar [ThreadPool] tarafından oluşturulan thread'lar mı (http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx)? Cevabınız göz önüne alındığında, aynı zamanda İşçi İpleri'nin sayısız sayısıyla da mistikleştiriyorum, bu kadar çok nasıl yarattığımı anlamıyorum. – pomeroy
Uygulama kodunuza bakmadan söylemek zor. CLR, uygulama konuları ile ilgili olarak çöp toplama için CLR worker threds yaratabilir, yine bu sadece bir tahmin çalışmasıdır, ancak uygulamanın Thread Pool'u kullandığını varsayarak iyi bir şekilde belgelenmiş bir davranış olduğunu varsayar - "eğer uygulama, iş parçacığı için bir iş parçacığı daha hızlı iş parçacığı görevlerini sıraya koyarsa işleyin, sonra iş parçacığı havuzu ek iş parçacığı oluşturacaktır. ", ve" Bir iş parçacığı havuzu hakkında harika bir şey, sezgisel olmasıdır. Uygulamanızın çok sayıda görev gerçekleştirmesi gerekiyorsa, iş parçacığı havuzu daha fazla iş parçacığı oluşturur. " – sll
Ekran görüntüsüne bakarak, zaman çizelgesi grafiğinde mor olan tek bir etkin uygulama iş parçacığınız (Ana iş parçacığı hariç), yani G/Ç işleminde (dosya/ağ akışını, io bağlantı noktasını vb.) Okuduğunuz anlamına gelir. diğer konular senkronizasyon için engellendi. Neden çok fazla engellenmiş çalışan iş parçacığınız olduğuna dair bir fikrim yok, bazı senkronize döngülerde iş parçacığı mı oluşturuyorsunuz? – sll