c# - What is difference between Task.Factory.StartNew and new Thread().Start()? -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 8 जवाब

    मेरे पास एक DbContext (इकाई) फ्रेमवर्क 6.0) और 1,000 ऑब्जेक्ट्स।

    प्रत्येक ऑब्जेक्ट के लिए, मैं इसे डेटाबेस में सहेजना शुरू कर देता हूं या एक ही थ्रेड / टास्क के साथ अपने डेटा को उसी DbContext का उपयोग करके अपडेट करता हूं।

    यह वही है मुझे मिल गया:

    • थ्रेड के लिए: EntityCommandExecutionException - पहले से ही एक खुले DataReader इस कमान के साथ जुड़ा है जो पहले बंद होना चाहिए। दूसरा भाषण शुरू होने के बाद यह अपवाद उत्पन्न हुआ।
    • कार्य के लिए: सबकुछ ठीक है सभी ऑब्जेक्ट्स को जोड़ा / अपडेट किया गया है।

      मैं समझता हूं कि उसी डीबीसीओन्टेक्ट ऑब्जेक्ट का उपयोग करने के कारण और कई कॉल करने के कारण, इसलिए मुझे थ्रेड के साथ अपवाद मिला लेकिन मुझे यकीन नहीं है।

      प्रश्न: मैं यहाँ थ्रेड के साथ मतभेदों के साथ-साथ अपवाद क्यों प्राप्त कर सकता हूं?

      मुझे बहुत समझ में नहीं आता कार्य और टीपीएल पुस्तकालय के बारे में मैंने पहले कई छोटे पैमाने पर परियोजनाओं के लिए थ्रेड का उपयोग किया है।

      • कार्य .Factory.StartNew : एक नया कार्य शुरू करता है जो थ्रेड पूल थ्रेड में चलाया जाएगा या समान थ्रेड में चला सकता है। यदि यह थ्रेड पूल थ्रेड में भाग गया है, तो थ्रेड को पूल में लौटाया जाता है जब किया जाता है थ्रेड सृजन / विनाश एक महंगी प्रक्रिया है

      • नया थ्रेड ()। प्रारंभ () : हमेशा एक नया थ्रेड में चला जाएगा, इसलिए, यह अधिक महंगा है। < / Li>

        अपवाद का मतलब है कि कोई अन्य डेटा कहीं से पढ़ा जा रहा है और आप उसी समय एक अन्य डेटा रीडर खोलने का प्रयास कर रहे हैं। कार्य का उपयोग करते समय, शायद आप दूसरे के बाद एक कार्य निष्पादित कर रहे हैं, और यही कारण है कि आपको अपवाद नहीं मिलता है।

        अपवाद संबंधित संबंधित नहीं है डेटा रीडर खोलकर आप एक ही अपवाद प्राप्त कर सकते हैं, और पहले को बंद किए बिना एक नया खोलने का प्रयास कर सकते हैं।

        मैं इस पर विचार करके अपने कोड की समीक्षा करने का सुझाव दूंगा, और यह सुनिश्चित करने के लिए कि इसका उपयोग करने से पहले आपको थ्रेडिंग की आवश्यकता है बहु-थ्रेडिंग अति प्रयोग प्रदर्शन समस्याओं और अविश्वसनीय बदसूरत बग बनाता है।

Comments

Popular posts from this blog

Pass DB Connection parameters to a Kettle a.k.a PDI table Input step dynamically from Excel -

multithreading - PhantomJS-Node in a for Loop -

c++ - MATLAB .m file to .mex file using Matlab Compiler -