locked
unterbrechen eines Programmes

    Frage

  • Ein rechenintensives Programm, das im Speicher aktiv ist und dabei ständig Ausgaben auf den Bildschirm macht wird durch Mausclick auf beliebiger BS-position unerwünscht unterbrochen.

    1. Wie kann das verhindert werden und

    2. wie kann die Unterbrechung gezielt per Mausclick     vorgenommen werden, weil dem User das Programm zu lange läuft.

     

    Sonntag, 1. April 2007 09:16

Alle Antworten

  • Hi,

     

    ich bin mir nicht ganz sicher ob ich das Problem richtig verstanden habe. Es ist also so, dass du da ein Programm hast das lange rechnet und ständig auch irgendwelche Windows-Controls aktualisiert? Das mit dem unerwünschten Abbruch habe ich nicht ganz verstanden - sollte eigentlich nicht passieren.

     

    Willst du aber einen absichtlichen Programmabbruch herbeiführen gibts da ein paar Dinge die du tun kannst. Prinzipiell gibt es mehrere Wege rechenintensive Vorgänge zu realisieren. Zum einen kannst du den Rechenvorgang selbst als eigenen Thread starten. Zusätzliche Threads laufen leben dem Hauptthread und beeinträchtigen das Benutzerfrontend nicht. Dadurch ist es dir möglich wärend des Rechenvorgangs Click-Events von Knöpfen zu bearbeiten und dadruch dem Rechenvorgang einen Abbruch zu signalisieren.

     

    Wenn dir das mit den Threads zu kompliziert ist oder du keinen Wert darauf legst, dass im Hauptfenster größere Dinge erledigt werden können wärend dein Rechenvorgang arbeitet tuts auch ein "Application.DoEvents()" das du in deinem Rechenablauf regelmäßg aufrufst. DoEvent() sorgt dafür, dass das Programm erstmal alle Windows-Messages, also in deinem Fall alle Click-Events die in der Zwischenzeit ausgeführt wurden abgearbeitet werden. Darunter auch ein Klick auf den Abbruch-Knopf.

     

    Hoffe das hilft dir weiter? Das Problem ist leider sehr knapp umrissen...

     

    VIele Grüße

    Tom

    Donnerstag, 5. April 2007 09:12