ObservableCollection en entornos multi threading

En WPF puedes usar la lista ObservableCollection para poder hacer enlace con controles tipo lista, de esta forma, usando únicamente XAML puedes enlazar una propiedad de este tipo a un control.

ObservableCollection tiene la característica de que en cuando se añade un elemento o se borra o se modifica se notifica al control XAML para que se actualice. Dicho de otra forma, implementa el INotifyPropertyChanged.

La implementación es simple y sencilla pero puede ser un problema en entornos multi-threading porque el mismo thread que crea el control XAML debe ser el mismo que actualiza la lista del tipo en cuestión.

Los entornos multi-threading esto no es siempre posible i sobretodo en implementaciones con el MVVM. Puedes usar distintas técnicas para solucionarlo, lo único que necesitas es que Dispatcher se encargue de actualizar dicha lista.

Pero he encontrado una solución original, la he probado y funciona muy bien.

Dejo el enlace aquí para que puedas consultar:

Fast performing and thread safe observable colección

Para más información:

Threading Considerations for Binding and Change Notification in Silverlight 5

 

 

 

 

Anuncis