asp.net mvc - Performing an async operation before every action in a controller -
निम्नलिखित पर विचार करें:
सार्वजनिक वर्ग FooController: नियंत्रक {सार्वजनिक async टास्क & lt; ActionResult & gt; Foo () {DoSomethingAsync (इंतजार); ... वापसी देखें (); } सार्वजनिक async कार्य & lt; ActionResult & gt; बार () {DoSomethingAsync (इंतजार); ... वापसी देखें (); } ...}
इस लाइन, इंतजार करें DoSomethingAsync ();
नियंत्रक में प्रत्येक कार्रवाई के लिए दोहराया जाता है। ऐसा कुछ करने के लिए बहुत अच्छा होगा:
सार्वजनिक ओवरराइड शून्य ऑनएक्शनएक्झीटिंग (एक्शन एक्सेप्टिंग कॉन्टैक्ट फ़िल्टरकांटेक्स्ट) {डोजसमिंगएसिंक () का इंतजार करना; }
लेकिन, जाहिर है, आप एक तुल्यकालिक विधि में एक async op चला सकते हैं। मैं बस सिंक चलाने के लिए async op पर बल लगा सकता था, लेकिन फिर आप थ्रेड को अनावश्यक रूप से अवरुद्ध होने के साथ समाप्त कर देते हैं। इस सिंक चलाने के लिए कम, मेरे पास कौन से विकल्प हैं?
दुर्भाग्य से, asp.NET MVC में नहीं है अतुल्यकालिक फिल्टर आज एएसपी.नेट वेबएपीआई के पास है, और एएसपीएनईटी वीएनईएफ़ (एमवीसी और वेबएपीआई के संयोजन में) उनके पास है।
तो, आज के लिए मैं कहूंगा कि आप कोड को दोहरा कर सबसे अच्छा कर रहे हैं, लेकिन भविष्य (भविष्य के निकट, उम्मीद है कि) को साफ किया जा सकता है।
Comments
Post a Comment