He estado jugando con los nuevos patrones async CTP y MVVM. He estado convirtiendo un viejo programa mío que estaba utilizando un trabajador de segundo plano e informo sobre el progreso para actualizar una colección en mi modelo. He convertido a algo así como lo queasync Task.Run con MVVM
TaskEx.Run(async() =>
{
while (true)
{
// update ObservableCollection here
}
await TaskEx.Delay(500);
});
En mi opinión, ato a mi modelo de vista que expone esta colección observable. Sin embargo, cuando las actualizaciones de mi colección recibo la siguiente Excepción
Este tipo de CollectionView no admite cambios en su SourceCollection de un hilo diferente del hilo Dispatcher.
No estoy seguro de cuál es la forma correcta de extraer el hilo de la interfaz de usuario cuando se hace así.
Como nota al margen, hay una versión actualizada del 'async' en el Visual Studio 11 Developer Preview que se puede descargar. – svick