Interupt

Hallo miteinander

Ich habe ein kleines VB.net Projekt und suche eine Art Interupt befehl. Gibt es dass überhaupt??

Gruss

Was genau soll denn der Interrupt-Befehl unterbrechen?

Was genau soll denn der Interrupt-Befehl unterbrechen?

Ich habe eine Windows-Formularanwendung. Wird der „Interup-Button“ gedrückt sollte das Programm aus der aktuellen Methode herausspringen…

Was genau soll denn der Interrupt-Befehl unterbrechen?

Ich habe eine Windows-Formularanwendung. Wird der
„Interup-Button“ gedrückt sollte das Programm aus der
aktuellen Methode herausspringen…

Hi!

Immer noch ein Verständnisproblem: Was soll denn die „aktuelle Methode“ sein?
Wie ist denn Deine Vorstellung davon, was passiert, wenn Du auf einen Button klickst?

Martin

Hallo Martin

Was soll denn die „aktuelle Methode“ sein?

Ich drücke einen ersten Button. Dieser löst eine Methode aus. Diese Methode benötigt eine gewisse Zeit. Während dieser Zeit möchte ich einen zweiten Button drücken, der die Methode unterbricht bzw. aus der Methode herausspring…

Was soll denn die „aktuelle
Methode“ sein?

Sorry hab nicht direkt dein Frage beantwortet. Es ist eine einfach Procedure die einige Basisbefehle ausführt.

Gruss

Hallo nochmal!

Da scheint ein grundsätzliches Verständnisproblem zu herrschen.
Als Reaktion auf den ersten Buttonklick wird eine Methode abgearbeitet. In der Zeit, in der diese Methode arbeitet, passiert sonst im Oberflächenthread _gar_nix_ mehr (Du kannst es beobachten, wenn Du, während die eine Methode läuft, den Dialog mit einem anderen Fenster überlagerst - der Dialog wird in der Zeit nicht mal neu gezeichnet).
Wenn Du während dieser Zeit den 2. Button klickst, wird dieses Ereignis erst dann verarbeitet, wenn die erste Methode durch ist - es gibt also nichts zu unterbrechen.

Sinnvollerweise würde man es so machen, dass die lang dauernde Methode nicht im Oberflächenthread (direkt im ButtonClick-Eventhandler) abgearbeitet wird, sondern in einem Hintergrundthread (schau’ Dir dazu vll. mal die Doku zur Klasse BackgroundWorker an).
Diesen Thread könnte man zur Not killen (das kommt wohl am ehesten an das ran, was Du ursprünglich wolltest), sauberer ist aber, wenn man in der Threadprozedur explizite Ausstiegspunkte festlegt, bspw. von Zeit zu Zeit abfragt, ob eine Variable einen bestimmten Wert hat und dann die Threadprozedur verlässt.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi!

Eine weitere Möglichkeit ist die Methode als normalen Thread (namspace System.Threading) auszuführen. Diesen Thread kannste dann starten, stoppen, anhalten, etc.

läuft
Moin moin

Eine weitere Möglichkeit ist die Methode als normalen Thread
(namspace System.Threading) auszuführen. Diesen Thread kannste
dann starten, stoppen, anhalten, etc.

Habe vor lauter Erfolg vergessen mich noch bei euch zu melden. Ich löste das ganze mit einem Thread. Läuft jetzt alles.

Danke vielmals