मैं अपने ViewModel में लंबे समय से चल रहे सर्वर कॉल को चलाने के लिए कार्य का उपयोग कर रहा हूं और परिणाम Dispatcher
का उपयोग करने पर वापस भेज दिया गया है TaskScheduler.FromSyncronizationContext()
। उदाहरण के लिए:
var context = TaskScheduler.FromCurrentSynchronizationContext();
this.Message = "Loading...";
Task task = Task.Factory.StartNew(() => { ... })
.ContinueWith(x => this.Message = "Completed"
, context);
जब मैं एप्लिकेशन निष्पादित करता हूं तो यह ठीक काम करता है। लेकिन जब मैं अपने NUnit
परीक्षण चलाता हूं तो मुझे Resharper
कॉल पर त्रुटि संदेश मिलता है FromCurrentSynchronizationContext
:
वर्तमान सिंक्रोनाइज़ेशनकोटेक्स्ट का उपयोग टास्कस्क्रिडर के रूप में नहीं किया जा सकता है।
मुझे लगता है कि यह इसलिए है क्योंकि परीक्षण कार्यकर्ता धागे पर चलाए जाते हैं। मैं यह सुनिश्चित कर सकता हूं कि परीक्षण मुख्य धागे पर कैसे चलाए जाएं? अन्य सुझावों का स्वागत है।
TaskScheduler.FromCurrentSynchronizationContext()
एक लंबोदर के अंदर का उपयोग कर रहा था और निष्पादन दूसरे धागे के लिए स्थगित कर दिया गया था। लंबोदर के बाहर संदर्भ मिलने से समस्या ठीक हो गई।