पर विचार इन दोनों नियंत्रक तरीके:यदि हम ASP.NET कोर में लंबे एसिंक ऑपरेशन का इंतजार करते हैं तो संभावित समस्याएं क्या हैं?
public async Task DoAsync() {
await TaskThatRunsFor10MinutesAsync().ConfigureAwait(false);
}
public void DoWithTaskRunAndReturnEarly() {
Task.Run(() => TaskThatRunsFor10MinutesAsync());
}
के ग्राहक के पक्ष हम प्रतिक्रिया के बारे में परवाह नहीं है पर करते हैं। हम इसे पूरा करने के लिए इंतजार कर सकते हैं, हम इसे आधे रास्ते से छोड़ सकते हैं क्योंकि उपयोगकर्ता पृष्ठ को रीफ्रेश कर रहा है - लेकिन इससे कोई फर्क नहीं पड़ता कि DoWithTaskRunAndReturnEarly
पहले रिटर्न करता है।
क्या उन दो दृष्टिकोणों के बीच एक महत्वपूर्ण सर्वर-साइड अंतर है, उदाहरण के लिए विश्वसनीयता, टाइमआउट, आदि में? क्या ASP.NET कोर कभी भी टाइमआउट पर धागे को रोकता है?
यदि अनुरोध-निरस्त सीटी v2 में आ रहा है, तो सीटी (नियंत्रक विधियों को पारित करने वाला) आज क्या करता है? –
यदि ग्राहक केस्ट्रेल में आरएसटी भेजता है या यदि आप सीधे HttpContext.Abort को कॉल करते हैं तो यह ट्रिगर हो जाता है – davidfowl