Hallo,
zunächst benötigst du einen 2. Thread. Ziehe dazu einen Backgroundworker auf deine Form und abonniere das
DoWork-Event. In diesem Eventhandler führst du dann deine Berechnung durch. Starten kannst du den Backgroundworker über
RunWorkerAsync und abbrechen über
CancelAsync.
Im
RunWorkerCompleted-Event erfährst du, wenn die Berechnung abgeschlossen ist.
Wenn du auf die GUI zugreifen musst, kannst du die
ReportProgress-Methode aufrufen und als 2. Parameter ein Objekt übergeben. Im
ProgressChanged-Event kannst du dieses Objekt aus den Eventargs abfragen und ausgeben. Alternativ kannst du aber auch die Onvoke-Methode benutzen um auf die GUI zuzugreifen:
button1.Invoke(new Action(() => button1.Text = "Neuer Wert"));
Das fett geschriebene führt die Änderung durch.
Statt einem Backgroundworker kannst du auch einen Thread (Task, ...) benutzen.
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als
Antwort und bewertet Beiträge. Danke.