मैं SynchronizationContext
कक्षा के बारे में सीख रहा हूं। मैं WinForm/WPF अनुप्रयोग के संदर्भ में SynchronizationContext.SetSynchronizationContext()
पर कॉल करने के लिए सामान्य उपयोग परिदृश्यों को समझने की कोशिश कर रहा हूं। धागे के SynchronizationContext
को सेट करने का क्या अर्थ है? मुझे यह कब करना चाहिए और क्यों? इसके अलावा, अगर मैं इसे सेट करता हूं, तो क्या मुझे इसे किसी बिंदु पर अनसेट करना चाहिए?एक UI अनुप्रयोग में सिंक्रनाइज़ेशन कॉन्टेक्स्ट.SetSynchronizationContext() को कब कॉल करें?
संपादित करें:
उसके जवाब में, @Hans Passant पूछा क्यों मैं SetSynchronizationContext()
विचार कर रहे थे। मेरे पास विचार है कि वर्क थ्रेड पर संदर्भ सेट करना है ताकि उस थ्रेड पर चल रहे कोड का उपयोग करने के लिए एक संदर्भ होगा।
private void button3_Click(object sender, EventArgs e)
{
var syncContext = SynchronizationContext.Current;
Task.Factory.StartNew(() =>
{
// Setup the SynchronizationContext on this thread so
// that SomeAsyncComponentThatNeedsACurrentContext
// will have a context when it needs one
if (SynchronizationContext.Current == null)
SynchronizationContext.SetSynchronizationContext(syncContext);
var c = new SomeAsyncComponentThatNeedsACurrentContext();
c.DoSomething();
});
}
का उपयोग करने की आवश्यकता नहीं है, मेरे प्रश्न के लिए अद्यतन देखें। – Sylvain
क्या मेरा अपडेट आपके उत्तर को बदलता है? क्या आपको लगता है कि एक वर्कर थ्रेड पर सिंक्रनाइज़ेशन कॉन्टेक्स्ट सेटिंग को इससे बचा जाना चाहिए? – Sylvain
मैं वास्तव में यह सुनना चाहता हूं कि आप इसके बारे में क्या सोचते हैं ... धन्यवाद – Sylvain