Exibindo a janela Aguarde em um fio separado

Eu tenho um método que exporta o conteúdo do meuDataGrid para umCSV Arquivo. Estou tentando exibir umWindow que tem uma animação para pedir ao usuário que aguarde.

No entanto, quando mostro oWindow a animação congela, então presumi que isso ocorre porque, como o método excel está sendo executado no mesmo thread, congela.

O que eu tentei até agora é isso;

var waitWindow = new PleaseWaitWindow();

var newWindowThread = new Thread(() =>
{
    waitWindow.Show();
    System.Windows.Threading.Dispatcher.Run();
});

newWindowThread.SetApartmentState(ApartmentState.STA);
newWindowThread.IsBackground = true;
newWindowThread.Start();

ExcelExport();

waitWindow.Close();

mas isso leva a um erro;

The calling thread cannot access this object because a different thread owns it.

Como posso iniciar um novo thread para que a animação não congele enquanto o método do Excel está exportando?

questionAnswers(1)

yourAnswerToTheQuestion