El uso de .NET 3.5Aplicación WPF de subprocesos múltiples: invocación de despachador. Una forma más eficiente?
Hola chicos, estoy haciendo una aplicación de WPF para un proyecto y que solo estaba buscando un poco de conocimiento en relación con el Dispatcher y multihilo. Un ejemplo de mi programa:
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(
() =>_aCollection.Add(new Model(aList[i], aSize[i]))));
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(
() => _Data.Add(new DataPoint<double, double>(Id, aList[i]))));
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(
() => _historical[0].Add(aList[i])));
entiendo que WPF no le gusta cuando otro hilo acceso a un objeto distinto del que lo creó. Sin embargo, estaba pensando que seguramente había una mejor manera de hacer tantas invocaciones de despachadores, ¿podría alguien por favor empujarme en la dirección correcta al menos? (Si es que hay una solución mejor).
Saludos, Sparky
¡Me gusta esta idea! Gracias. Tengo 2 hilos ejecutándose en una clase: 1 para obtener datos para la base de datos, y el otro para emitir un RaisePropertyChanged para actualizar la UI. Entiendo que probablemente esta no sea la mejor manera de hacer las cosas, para ser honesto, no soy un experto en WPF, por lo que la idea de un UI Thread y backgroundWorkers es un poco extraño para mí en el minuto – Sparky
No, eso es más o menos cómo se hacen las cosas en WPF, así que diría que su enfoque está bien. Estoy de acuerdo en que puede ser un dolor hacer las cosas de UI, pero creo que es un mal necesario. Codificar al gorila también es un buen punto sobre las continuidades, pero pueden entrar en territorio de súper escurrimiento, así que ten cuidado. ¡Buena suerte! –
No creo que esto sea "más o menos cómo se hacen las cosas en WPF". La unión de datos debería hacer el envío de forma automática. Especialmente si él está usando MVVM. Ver mi respuesta actualizada. – Euphoric