दिलचस्प पोस्ट
एक एसक्यूएल कनेक्शन में कई एसक्यूएल कमांड चलाने के लिए कैसे? Regex के साथ केवल कुछ समूह बदलें स्ट्रिंग मानों के सामने 'यू' का अर्थ क्या होता है? मैं एक Microsoft JSON दिनांक को कैसे प्रारूपित कर सकता हूं? क्या अजगर की फ़ाइल.फ्लस () क्या कर रही है? कुछ संदर्भों को पार करते समय मैं एक्सप्रेस जर्दे में कैसे पुनर्निर्देशित करूं? मानक कार्य के पहले / बाद में स्वचालित कार्य चलाएं मेरे आवेदन से मानक Google मानचित्र आवेदन कैसे खोल सकता है? हैशटैग के लिए फेसबुक एपीआई खोज XHTML को विश्लेषित करने में त्रुटि: तत्वों की सामग्री में अच्छी तरह से वर्णित वर्ण डेटा या मार्कअप होने चाहिए ईक्लिप्स से रिमोट डिप्लोमा टॉमकेट वेबएप ओपनजीएल ES में गोलाकार आरेखण जावास्क्रिप्ट की तारीख रेगेक्स डीडी / एमएम / वाई वाई वाई वाई कौन सा डिवाइस जावास्क्रिप्ट जियोओलेकेशन के जरिए navigator.geolocation का समर्थन करते हैं? C ++ टेम्पलेट जो केवल कुछ प्रकार स्वीकार करते हैं

टास्क। स्टार्ट (), टास्क.रन () और टास्क। फ़ैक्टर। स्टार्टन्यू () का उपयोग करने के बारे में

मैंने टीपीएल उपयोग के बारे में 3 रूटीन को देखा जो एक ही काम करता है

यहाँ कोड है

public static void Main() { Thread.CurrentThread.Name = "Main"; // Create a task and supply a user delegate by using a lambda expression. Task taskA = new Task( () => Console.WriteLine("Hello from taskA.")); // Start the task. taskA.Start(); // Output a message from the calling thread. Console.WriteLine("Hello from thread '{0}'.", Thread.CurrentThread.Name); taskA.Wait(); } public static void Main() { Thread.CurrentThread.Name = "Main"; // Define and run the task. Task taskA = Task.Run( () => Console.WriteLine("Hello from taskA.")); // Output a message from the calling thread. Console.WriteLine("Hello from thread '{0}'.", Thread.CurrentThread.Name); taskA.Wait(); } public static void Main() { Thread.CurrentThread.Name = "Main"; // Better: Create and start the task in one operation. Task taskA = Task.Factory.StartNew(() => Console.WriteLine("Hello from taskA.")); // Output a message from the calling thread. Console.WriteLine("Hello from thread '{0}'.", Thread.CurrentThread.Name); taskA.Wait(); } 

मुझे समझ में नहीं आता कि एमएस टीपीएल में नौकरी चलाने के लिए 3 अलग-अलग तरीकों का कारण है क्योंकि वे सभी एक ही काम करते हैं: Task.Start() , Task.Run() और Task.Factory.StartNew()Task.Factory.StartNew()

मुझे बताओ, कार्य है। Task.Start() , कार्य। Task.Run() और कार्य। Task.Factory.StartNew() सभी एक ही उद्देश्य के लिए उपयोग किए गए या उनके पास अलग महत्व है?

जब किसी को Task.Start() उपयोग करना चाहिए, जब Task.Run() और जब किसी को Task.Factory.StartNew() उपयोग करना चाहिए। Task.Factory.StartNew() ?

कृपया उदाहरण के साथ महान विवरण में अपने वास्तविक उपयोग को समझने में मदद करें, धन्यवाद

Solutions Collecting From Web of "टास्क। स्टार्ट (), टास्क.रन () और टास्क। फ़ैक्टर। स्टार्टन्यू () का उपयोग करने के बारे में"

Task.Run लिए एक लघुकथा है। विशिष्ट सुरक्षित तर्कों के साथ Task.Factory.StartNew :

 Task.Factory.StartNew( action, CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); 

इसे नेट 4.5 में जोड़ा गया था ताकि एसिंक के तेजी से लगातार उपयोग और ThreadPool को ऑफलोडिंग काम में मदद मिल सके।

Task.Factory.StartNew (टीपीएल में नेट 4.0 में जोड़ा गया) अधिक मजबूत है। आपको केवल इसका उपयोग करना चाहिए यदि Task.Run पर्याप्त नहीं है, उदाहरण के लिए, जब आप TaskCreationOptions.LongRunning का उपयोग करना चाहते हैं। TaskCreationOptions.LongRunning (हालांकि यह अनावश्यक है जब प्रतिनिधि TaskCreationOptions.LongRunning होता है।) मेरे ब्लॉग पर अधिक: लांगरनिंग टास्क के लिए बेकार है। Async -वाइट ) कार्य पर Task.Factory.StartNewTask.Factory.StartNew में Task.Factory.StartNew । रन बनाम टास्क। फ़ैक्टर। स्टार्टन्यू

कभी भी एक Task और कॉल Start() तब तक न बनाएं जब तक आपको ऐसा करने का एक बहुत अच्छा कारण न मिलें। इसका उपयोग केवल तब किया जाना चाहिए जब आपके पास कुछ हिस्सा है जो कार्यों को बनाने के लिए आवश्यक है, लेकिन उन्हें शेड्यूल न करें और किसी अन्य भाग के बिना शेड्यूल बनाने के लिए यह लगभग एक उपयुक्त समाधान नहीं है और खतरनाक हो सकता है। "टास्क। फ़ैक्टर। स्टार्ट न्यू" बनाम "नया कार्य (…) में और"

निष्कर्ष में, ज्यादातर कार्य का उपयोग करते हैं। Task.Run , Task.Factory.StartNew उपयोग StartTask.Factory.StartNewStart Task.Factory.StartNew अगर आपको Start करना चाहिए और कभी भी StartStart

जवाब के अतिरिक्त, आपको कंसलर से बिना मजबूती के कारण काम नहीं करना चाहिए। टीपीएल सिंक्रनाइज़ेशन और संगामिति के साथ बहुत सावधानी बरतता है। यह क्लाइंट कोड से उन जटिलता को छिपाता है। यदि आप एक टास्क का निर्माण करते हैं और इसे प्रारंभ करते हैं, तो आपको सिंक्रनाइज़ेशन और संगामिति के बारे में सोचने की ज़रूरत है जो स्पष्ट रूप से संभालना कठिन है।