Ich muss Fenster mit Spinner anzeigen, während der Verarbeitung einer Aktion. Dieses Fenster sollte Modell sein, so dass ich bin mit Showdialog() -Methode:Zeige modalen Dialog in parallelen Thread
void ShowDlg() {
Thread WindowThread = new Thread(() =>
{
SpinnerWindow spinnerWindow = new SpinnerWindow();
spinnerWindow.ShowDialog();
System.Windows.Threading.Dispatcher.Run();
});
WindowThread.SetApartmentState(ApartmentState.STA);
WindowThread.Start();
}
Dann, nach einigem Prozess gemacht wird, ich versuche, dieses modale Fenster zu schließen:
WindowThread.Interrupt();
if (!WindowThread.Join(2000))
{
WindowThread.Abort();
}
und alles funktioniert gut , bis ich versuche, ShowDlg() das zweite Mal aufzurufen. Ich bekomme die nächste Ausnahme:
Der aufrufende Thread kann nicht auf dieses Objekt zugreifen, da ein anderer Thread es besitzt.
Was mache ich falsch, vielleicht inkorrekter Abschluss des erstellten Threads?