बनाम जाहिर .NET 4.0 में TaskFactory.StartNew
विधि ThreadPool.QueueUserWorkItem
(according to this post, anyway) के लिए एक स्थानापन्न के रूप में करना है। मेरा सवाल सरल है: क्या किसी को पता है क्यों?TaskFactory.StartNew ThreadPool.QueueUserWorkItem
क्या TaskFactory.StartNew
बेहतर प्रदर्शन है? क्या यह कम स्मृति का उपयोग करता है? या यह मुख्य रूप से Task
कक्षा द्वारा प्रदान की गई अतिरिक्त कार्यक्षमता के लिए है? बाद के मामले में, StartNew
में QueueUserWorkItem
से अधिक प्रदर्शन है?
मुझे ऐसा लगता है कि वास्तव में StartNew
संभावित अधिक स्मृति QueueUserWorkItem
से, का प्रयोग करेंगे, क्योंकि यह हर कॉल के साथ एक Task
ऑब्जेक्ट और मुझे लगता है कि और अधिक स्मृति आवंटन में परिणाम की उम्मीद करेंगे।
किसी भी मामले में, मुझे यह जानने में दिलचस्पी है कि उच्च प्रदर्शन परिदृश्य के लिए कौन सा उचित है।
AFAIK डिफ़ॉल्ट TaskScheduler एक ThreadPool का उपयोग करता है और उन दोनों के बीच कोई अंतर नहीं है जब आप मल्टी कोर समर्थन चाहते हैं। पुरुष भी कुछ परीक्षण किया गया है: http://stackoverflow.com/a/5219311/152291 – prostynick