Como melhorar o desempenho de renderização do Canvas?

Tenho que desenhar um monte deForm (cerca de meia centena de mil) como as crianças de [Canvas] [2]. Eu faço isso no meu aplicativo WPF, dividindo o trabalho em duas partes: a primeira coisa que crio formas é definir as propriedades de cada uma delas (como Margem, Preenchimento, Largura, etc ...), depois de adicionar formas como filhos do Canva

MyCanvas.Children.Add(MyShape)

gora, quero melhorar o desempenho da segunda parte, porque quando desenho as formas, meu aplicativo fica bloqueado por um longo período de tempo. Então eu tentei usar oExpedido e seu método [BeginInvoke] [4] com diferentes [prioridades] [5]: somente se eu usar a prioridade Segundo plano, o aplicativo principal não será bloqueado, caso contrário, o aplicativo permanecerá bloqueado e a "imagem" não será exibida até que todas as formas sejam adicionado ao meu Canvas, mas se eu usar a prioridade de plano de fundo, obviamente tudo será mais lento. Também tentei criar um novo thread em vez de usar o Dispatcher, mas não houve alterações significativa

Como posso corrigir esse problema e geralmente melhorar o desempenho do meu aplicativo quando adiciono minhas formas ao Canva

Obrigado

questionAnswers(8)

yourAnswerToTheQuestion