मेरे पास एक wpf प्रोजेक्ट है जहां मैं INotifyProperty का उपयोग कर रहा हूं उस संपत्ति पर बदल दिया गया जो टेक्स्टबॉक्स से जुड़ा हुआ है। मैं इस मान को कार्य (TaskParallelLibrary) का उपयोग करके एक अलग धागे पर अद्यतन कर रहा हूं। यह ठीक से अद्यतन किया गया है और एक अपवाद फेंक नहीं है। मैं सोच रहा था कि यह एक अपवाद फेंक देगा क्योंकि यह पृष्ठभूमि धागे पर चल रहा है और यूआई थ्रेड नहीं है। अगर मैं यूआई तत्व का सीधे उपयोग करता हूं तो यह अपवाद फेंक रहा है। तो, क्या INotifyPropertyChanged बाध्य तंत्र स्वचालित रूप से UI थ्रेड को प्रेषण का ख्याल रखता है?कार्य समानांतर लाइब्रेरी INotifyProperty ने अपवाद फेंक दिया नहीं?
यहां संपत्ति के साथ मेरा कोड है।
private string _textProperty = "";
public string TextProperty
{
get
{
return _textProperty;
}
set
{
if (_textProperty != value)
{
_textProperty = value;
NotifyPropertyChanged("TextProperty");
}
}
}
और मेरे कार्य निर्माण
var task = new Task(() =>
{
TextProperty = "ABCD"; // Works.
// txtBox.Text = "ABCD"; // Throws an exception.
});
task.Start();
है और XAML में पाठ बॉक्स <TextBox Name="txtBox" Text="{Binding TextProperty}"/>
+1। WPF 4.5 के लिए दिलचस्प लिंक। ऐसा लगता है कि उन्होंने कुछ चीजें हल की हैं जिन्हें मैं वर्तमान में डब्ल्यूपीएफ के बारे में नापसंद करता हूं। – RichardOD
@Reed क्या आपके पास संदर्भ है कि wpf मार्शल आपके लिए अपडेट कैसे करता है? –