मैं एक डब्ल्यूपीएफ परियोजना में थ्रेडिंग की समझ प्राप्त करने के लिए विजुअल स्टूडियो में कंसुरेंसी विजुअलाइज़र टूल का उपयोग कर रहा हूं। एप्लिकेशन बहुत अधिक थ्रेडेड नहीं है, सभी मल्टी-थ्रेडिंग केवल यूआई थ्रेड को अवरुद्ध करने से बचने के लिए है। जब मैं Concurrency विजुअलाइज़र चला गया मैं लगभग 50+ धागे देखने के लिए बहुत हैरान था! चीजों को और अधिक भ्रमित करने के लिए, लगभग 50+ धागे में से, अपने पूरे समय को "सिंक्रनाइज़ेशन" में बिताया, जिसे मैं समझता हूं "अवरुद्ध" है।कंसुरेंसी विजुअलाइज़र - डब्ल्यूपीएफ/सीएलआर थ्रेडिंग को समझना
एक प्रयोग के रूप में मैंने एक नया खाली WPF अनुप्रयोग प्रोजेक्ट बनाया, और इसे मेरे आश्चर्य के लिए फिर से कंसुरेंसी विजुअलाइजर के साथ चलाया, एक ऐसा एप्लिकेशन जिसे मैंने एक मुख्य धागा होने की उम्मीद की थी, और शायद कचरा संग्रह के लिए एक या दो और या अन्य सीएलआर सामान, 10 धागे के लिए बाहर निकलता है!
तो मेरी प्रश्न हैं:
- क्यों एक बहुत ही सरल आवेदन में इतने सारे धागे कर रहे हैं?
- आम तौर पर इन धागे के कार्यों क्या हैं?
- वे अपने पूरे समय "सिंक्रनाइज़ेशन" क्यों खर्च कर रहे हैं?
- इस विषय को कवर करने वाली पुस्तक/वेबसाइट के लिए कोई सिफारिशें?