2010-03-27 4 views
9

में स्थगित निष्पादन और आलसी मूल्यांकन के बीच अंतर क्या आप कृपया मुझे बता सकते हैं कि स्थगित निष्पादन और सी # में आलसी मूल्यांकन के बीच सटीक सम्मान क्या है? इन दोनों को समानार्थी रूप से उपयोग किया जाता है। क्या कोई एक उदाहरण के साथ अंतर को समझा सकता है ??सी #

+2

डुप्लिकेट, http://stackoverflow.com/questions/2515796/2515920 –

+0

के नाम से नामित उपयोगकर्ता द्वारा डुप्लिकेट, इस विषय पर जॉन स्कीट्स ब्लॉग पोस्ट देखें: [http://msmvps.com/blogs/jon_skeet /archive/2010/03/25/just-how-lazy-are-you.aspx](http://msmvps.com/blogs/jon_skeet/archive/2010/03/25/just-how-lazy-are- आप।एएसपीएक्स) – Jan

+0

ठीक है, आप जीतते हैं। धीमा/आलसी मुझे :) – Jan

उत्तर

20

प्रैक्टिस में, उनका मतलब अनिवार्य रूप से वही बात है। हालांकि, स्थगित शब्द का उपयोग करना बेहतर है।

  • लेज़ी"काम नहीं करते जब तक आप पूरी तरह से करना है।" इसका मतलब है

  • आस्थगित मतलब है "परिणाम की गणना नहीं है जब तक फोन करने वाले वास्तव में इसे इस्तेमाल करता है।"

अभ्यास में, जब फोन करने वाले एक मूल्यांकन का परिणाम उपयोग करने का फैसला (यानी एक IEnumerable<T> के माध्यम से पुनरावृत्ति शुरू), कि ठीक बिंदु है जिस पर "काम" (किया जाना इस तरह के जारी करने के रूप में की जरूरत है डेटाबेस के लिए एक प्रश्न)।

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

इस विषय पर चर्चा करते समय स्थगित शब्द का उपयोग करें, क्योंकि यह सी # से संबंधित है। आलसी एक योनू संस्करण है।

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

+0

प्रिय हारून, आपके विस्तृत और उत्कृष्ट स्पष्टीकरण के लिए बहुत बहुत धन्यवाद ... –

+0

अगर किसी को यह देखने के लिए कोड की आवश्यकता है कि वे दोनों कैसे काम कर रहे हैं, तो मैं कंसोल ऐप तैयार करता हूं जो उनके बीच अंतर दिखाता है: https://github.com/jakubmaguza/Lazy-vs-Deferred-vs-Normal/blob/master/src/Main.cs – titol

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^