2012-04-23 11 views
5

Meine Anwendung hat einen Worker-Thread, der einige Dateien synchronisiert.MessageBox auf Worker-Thread

Unter bestimmten Bedingungen während des Synchronisierungsprozesses muss mein Worker-Thread eine Entscheidung treffen, ob er fortfahren soll oder nicht. Daher denke ich, dass ich nach einem Benutzerfeedback fragen würde, indem ich ein Dialogfeld/eine Meldungsbox zeige. (Ja/Nein). Das würde den Arbeiter veranlassen, entweder fortzusetzen oder zu stoppen.

Jetzt ist die Frage:
Ist es sicher, Meldungsfeld auf nicht UI-Thread zu zeigen?
Würde es möglicherweise zu möglichen Problemen führen?

+0

Das Problem in der Lage ist, nicht die richtig Eltern einzustellen: http://stackoverflow.com/questions/12949333/message-box-from-another-thread/13961697#13961697 – hans

Antwort

5

Ist es sicher, Meldungsfeld auf nicht UI-Thread anzuzeigen?

Ja, es ist sicher. MessageBox.Show() ist eine statische Thread-sichere Methode.

würde es möglicherweise potenzielle Probleme verursachen?

Nicht in diesem Szenario denke ich. Aber du blockierst einen Thread, nicht etwas, das du tun solltest, wenn du es verhindern kannst.

3

MessageBox ist nicht an die Benutzeroberfläche gebunden. Es ist ein einfacher Win32-API-Aufruf. Sie können es für jeden Thread verwenden.

+2

Nein, Sie können nicht. http://www.codeproject.com/Articles/121226/MessageBoxes-and-worker-threads – Robert