¿Cómo mejorar el rendimiento de representación de Canvas?

Tengo que dibujar muchoForm (aproximadamente 1/2cientos mil) como hijos de [Canvas] [2]. Hago esto en mi aplicación WPF dividiendo el trabajo en dos partes: primero creo formas configurando las propiedades de cada una de ellas (como Margen, Relleno, Ancho, etc.), después de agregar formas como hijos de Canvas.

MyCanvas.Children.Add(MyShape)

Ahora quiero mejorar el rendimiento de la segunda parte, porque cuando dibujo las formas, mi aplicación se bloquea durante un largo período de tiempo. Así que traté de usar laDespachado y su método [BeginInvoke] [4] con diferentes [prioridades] [5]: solo si uso la prioridad de fondo, la aplicación principal no bloquea, de lo contrario, la aplicación permanece bloqueada y la "imagen" no se muestra hasta que se muestran todas las formas agregado a mi lienzo, pero si uso la prioridad de fondo, obviamente, todo es más lento. También intenté crear un nuevo hilo en lugar de usar el Dispatcher, pero no hubo ningún cambio significativo.

¿Cómo puedo solucionar este problema y, en general, mejorar el rendimiento de mi aplicación cuando agrego mis formas a Canvas?

Gracias

Respuestas a la pregunta(8)

Su respuesta a la pregunta