Ich habe eine Anwendung erstellt, die ein Formular unter Verwendung Application.Run(new Form)
startet. Innerhalb der Anwendung gibt es diese folgenden Thread-FunktionAusnahme beim Schließen der Anwendung geworfen
private void threadTask() {
while (true) {
Thread.Sleep(500);
if (isOn) {
Invoke((MethodInvoker) delegate { reloadData(tabControl.SelectedIndex); });
Invoke((MethodInvoker) delegate { onOffButton.BackColor = Color.Lime; });
Invoke((MethodInvoker) delegate { infoLabel.Visible = false; });
}
}
}
Wenn ich die Anwendung schließen bekomme ich diese Ausnahme:
Ausnahme geworfen: 'System.InvalidOperationException' in System.Windows.Forms.dll
bei System.Windows.Forms.Control.Invoke (Delegatmethode, Object [] args)
Ich habe versucht, dies zu lösen, indem Sie Application.Exit()
aufrufen, wenn das Formular geschlossen wird. Die Funktion wird ausgeführt, allerdings bekomme ich immer noch die Ausnahme nachdem der aufgerufen wurde.
Gibt es einen Weg, wie ich das umgehen kann? Wie überprüfe ich, dass die Anwendung geschlossen wird?
Debug in vs und check wich Zeile throughs Ausnahme. Ich denke, Sie müssen beenden Fäden vor dem Beenden der Anwendung – lvl4fi4
Es ist ziemlich zufällig. Ich komme mit irgendeiner der drei Invoke-Linien vor, manchmal überhaupt nicht. –
so wie ich sagte, Sie müssen sie vor dem Beenden der Anwendung beenden – lvl4fi4