जैसा कि मैं इसे समझता हूं, Task.Yield
किसी विधि की शुरुआत में कॉलर को जारी रखने के लिए मजबूर किया जाएगा यदि यह विधि का इंतजार नहीं कर रहा है। इस बीच Task.Run
और ConfigureAwait(false)
both एक नए थ्रेड पूल थ्रेड पर एक कार्य चलाएं, जो कॉलर को फिर से जारी रखने के लिए मजबूर करेगा यदि यह विधि का इंतजार नहीं कर रहा है।टास्क.इल्ड, टास्क.रुन और कॉन्फ़िगरएवाइट (झूठी) के बीच क्या अंतर है?
मैं Task.Yield
के बीच अंतर को समझ नहीं सकता और कॉलर पर लौटने के ठीक बाद से एक नया थ्रेड पूल थ्रेड चला रहा हूं, यह शेष विधि को निष्पादित करना जारी रखेगा, जो अनिवार्य रूप से वही बात है।
This पोस्ट पता चलता है कि Yield
और Task.Factory.StartNew
(जो वास्तव में सिर्फ Task.Run
के पुराने संस्करण है) दूसरे के स्थान पर इस्तेमाल किया जा सकता है, जो मेरे लिए भ्रामक लगता है।
कार्य.रुन = कार्य। फैक्टरी। स्टार्टन्यू – hungndv
@ हंगन्दव 'कार्य। रुन'' कार्य। फैक्टरी। स्टार्टन्यू 'है लेकिन डिफ़ॉल्ट कार्य शेड्यूलर (थ्रेड पूल कार्य शेड्यूलर) पर है। 'Task.Factory।StartNew' कार्य शेड्यूलर निर्दिष्ट करने के बिना वर्तमान कार्य शेड्यूलर चुन देगा, जो डिफ़ॉल्ट नहीं हो सकता है। उदाहरण के लिए यह यूआई कार्य शेड्यूलर हो सकता है। 'कार्य। रुन' हमेशा थ्रेडपूल में निष्पादित होता है। तो, 'टास्क.रुन' 'टास्क.फैक्टरी.स्टार्टन्यू 'का एक विशेष मामला है, और ** ** ** इसका नया संस्करण –