सोचा था कि मुझे ConfigureAwait
पर एक हैंडल मिल रहा था, फिर मैंने एक प्रयोग करने की कोशिश की।सी # कार्य कॉन्फ़िगरएवेट
मेरी समझ यह है कि ConfigureAwait(false)
सिंक्रनाइज़ेशन संदर्भ होने पर केवल तभी अंतर आएगा।
एएसपी, डब्ल्यूपीएफ, आदि का एक संदर्भ होना चाहिए, लेकिन कंसोल ऐप्स और सेवा ऐप्स नहीं होना चाहिए।
// GET api/values/5
public async Task<string> Get (int id)
{
var syncCtx = SynchronizationContext.Current;
int startThreadId = Thread.CurrentThread.ManagedThreadId;
await Task.Delay(TimeSpan.FromSeconds(3)).ConfigureAwait(true);
int endThreadId = Thread.CurrentThread.ManagedThreadId;
return "Start Thread ID: " + startThreadId.ToString() +
": End Thread ID: " + endThreadId.ToString();
}
मेरे भविष्यवाणी थी कि true
करने के लिए कोई ConfigureAwait
या ConfigureAwait
सेट के साथ, मैं एक ही धागा आईडी से पहले देखना चाहिए और:
यह कैसे काम करता है मैं एक वेब API एप्लिकेशन बनाया है और शामिल निम्न विधि को देखने के लिए प्रतीक्षा के बाद।
मेरे पहले कुछ परीक्षणों ने दिखाया कि ऊपर के रूप में सही सेट के साथ।
कोड के बाद के रन ConfigureAwait
पर ध्यान दिए बिना अलग थ्रेड आईडी पर समाप्त हो गए।
मैंने खुद को मनाने के लिए syncCtx
जोड़ा है मेरे पास एक संदर्भ है।
मैंने जो चेतावनी पढ़ी है वह यह है कि यदि कार्य पूरा हो गया है, तो आपको उसी आईडी की गारंटी नहीं दी जाएगी। क्या यह मामला यहाँ है? यदि हां, तो वह मामला क्यों है?
क्या मैंने एक बेवकूफ या दोषपूर्ण परीक्षण स्थापित किया है? यदि हां, तो उचित परीक्षा क्या होगी?
मैंने इस पथ को कंसोल/सेवा ऐप में शुरू कर दिया और महसूस किया कि मुझे एक ही थ्रेड आईडी नहीं मिल रही है। मैं ConfigureAwait(false)
जोड़ रहा था जैसा कि मैंने देखा है "सबसे अच्छा अभ्यास" लिखने में अनुशंसित। चूंकि मैं देखना चाहता हूं कि चीजें वास्तव में कैसे काम करती हैं, मैंने थ्रेड आईडी का परीक्षण करने का प्रयास किया। उन्हें देखकर मुझे कई खोजों के माध्यम से अलग किया गया जिसके परिणामस्वरूप उपर्युक्त कोड हुआ।
बस स्पष्ट करने के लिए मैं नहीं कर रहा हूँ * * कोशिश कर एक ही धागे प्राप्त करने के लिए, बस ConfigureAwait के व्यवहार की मेरी गलतफहमी को दूर करने की कोशिश कर। – jeffa00
ठीक है, मैं अभी भी एमएसडीएन पत्रिका लेख पढ़ांगा। यह इन विषयों को काफी अच्छी तरह से कवर करता है। –
मैं निश्चित रूप से उस लेख को पढ़ने की योजना बना रहा हूं। लिंक के लिए धन्यवाद। – jeffa00