Dialog mit Threadstop
-
Es gibt Dialoge die modal angezeigt werden und den Thread stoppen. Wie heißt das Stoppen des Threads, gibt es dafür ein Fachwort? ZB die InputBox in den WinForms die den Thread erst dann weiter arbeiten läßt wenn der User dort etwas reingeschrieben oder abgebrochen hat.
-
Modalität.
-
Bzw. bezogen auf die Funktion "DoModal" könnte man auch sagen dass diese "synchron" ist.
Wobei "Thread stoppen" natürlich nicht richtig ist. Der Thread läuft schon weiter, der tut z.B. weiterhin fleissig Messages dispatchen. Was auch eine der grossen Gefahren von modalen Dialogen ist.
-
Modal ist aber nicht unbedingt richtig. Ich programmiere an einer SAP-Addon. Modale Fenster sind dort über allen anderen Fenstern und die Hintergrundfenster reagieren nicht. Jedoch nach dem Aufruf des modalen Fensters läuft der Code weiter. Das ist ärgerlich, wenn man den User fragen will wie es weiter geht, der Thread jedoch nicht "anhält". Ich habe das jetzt mit Delegaten und Parameterklassen gelöst, je nachdem wie der User klickt geht es entsprechend weiter. Bei den modalen Dialogen fehlt das "Anhalten". Wenn man eine Windows Messagebox aufruft, dann wird der Code auch angehalten. Wie läuft das genau ab? Was passiert beim Aufruf der Messagebox?
-
Windows User schrieb:
Wie läuft das genau ab? Was passiert beim Aufruf der Messagebox?
Lektüre:
Modality, part 1: UI-modality vs code-modality
Modality, part 2: Code-modality vs UI-modality
Modality, part 3: The WM_QUIT message
Modality, part 4: The importance of setting the correct owner for modal UI
Modality, part 5: Setting the correct owner for modal UI
Modality, part 6: Interacting with a program that has gone modal
Modality, part 7: A timed MessageBox, the cheap version
Modality, part 8: A timed MessageBox, the better version
Modality, part 9: Setting the correct owner for modal UI, practical exam