seguro mostrar várias caixas de diálogo no WP

Surpreendentemente, é possível mostrar mais de uma caixa de diálogo por vez, colocando a chamada ShowDialog () no Dispatcher:

uiDispatcher.BeginInvoke(new Func<bool?>(myWindow.ShowDialog));

Como isso funciona e ainda a interface do usuário continua executando respondendo à interação do usuário depois que a caixa de diálogo é exibida (eu pensaria que não, já que ShowDialog () bloqueia o segmento em que deve ser o segmento da interface do usuário), pode-se continuar mostrando novas caixas de diálogo:

Window myWindow;
for(int i = 0; i < 5; i ++)
{
  myWindow = new Window(); 
  uiDispatcher.BeginInvoke(new Func<bool?>(myWindow.ShowDialog));
}

E a interface do usuário ainda responde.

Há algo que eu deva tomar cuidado ao confiar nesse comportament (Eu quero mostrar uma caixa de diálogo em cima da outra quando algum encadeamento em segundo plano quiser - isso funciona - o único comportamento indesejado parece ser ao alternar entre aplicativos às vezes o WPF não sabe qual caixa de diálogo deve estar no topo - mas ainda permite que você traga uma das caixas de diálogo para a frente, clicando nela, o que é incomum para uma caixa de diálogo, pois clicar fora de uma caixa de diálogo geralmente não é permitido

ATUALIZAR Uma questão que me deparei é que, se você ocultar uma das caixas de diálogo, o usuário poderá interagir com todas as outras janelas novamente! (não apenas as outras caixas de diálogo). Vejo:WPF Diálogo não modal?

questionAnswers(1)

yourAnswerToTheQuestion