Tengo un proyecto wpf donde estoy usando INotifyPropertyChanged en una propiedad que se une al cuadro de texto. Estoy actualizando este valor en un hilo diferente usando la tarea (TaskParallelLibrary). Se actualiza correctamente y NO arroja una excepción. Estaba pensando que arrojaría una excepción porque se está ejecutando en un hilo de fondo y no en el hilo de UI. Por supuesto, está lanzando una excepción si uso directamente el elemento UI. Entonces, ¿el mecanismo de enlace INotifyPropertyChanged se encarga de enviar automáticamente el hilo de UI?Tarea paralela biblioteca INotifyPropertyChanged NO lanzando una excepción?
Aquí está mi código con la propiedad.
private string _textProperty = "";
public string TextProperty
{
get
{
return _textProperty;
}
set
{
if (_textProperty != value)
{
_textProperty = value;
NotifyPropertyChanged("TextProperty");
}
}
}
y mi tarea es la creación
var task = new Task(() =>
{
TextProperty = "ABCD"; // Works.
// txtBox.Text = "ABCD"; // Throws an exception.
});
task.Start();
y el cuadro de texto en XAML es <TextBox Name="txtBox" Text="{Binding TextProperty}"/>
+1. Interesante enlace a WPF 4.5. Parece que han solucionado algunas de las cosas que no me gustan de WPF actualmente. – RichardOD
@Reed ¿tiene alguna referencia útil sobre cómo wpf prepara la actualización para usted? –