Backgroundworker

Wenn man aus einem Thread heraus eine Zeitaufwändige Operation durchführt, kann dies dazu führen, dass man den Eindruck bekommt, das Fenster wäre eingefroren. Der Grund ist ganz einfach, weil diese Aufgabe im ersten Thread stattfindet und solange dauert, bis es fertig ist. Jetzt stellt .Net den Threading Namespace zur Verfügung womit man für solche Aufgaben einen neuen Thread aufmachen könnte. Eben genau dies tut auch der Backgroundworker nur in einer stark vereinfachter Form.

Unbenannt-1

 

 

Backgroundworker einbinden:

1. Namespace hinzufügen:
[crayon-6653f8d895d45528853749/]
2. Backgroundworker deklarieren:
[crayon-6653f8d895d4f877191707/]
3. diesem Objekt events zuweisen:
[crayon-6653f8d895d51931633762/]
4. die beiden Methoden implementieren:
[crayon-6653f8d895d53967366626/]
5. worker asynchron ausführen lassen:
[crayon-6653f8d895d55576974471/]
 

wünscht man einen Bericht über den derzeitigen Prozess, so muss man auch das event ProgressChanged  hinzufügen, ReportProgress(Int32) in DoWorks ausführen lassen und in WorkerReportsProgress das Resultat bekommen

 

Häufigste Problematik die man Anfangs hat ist, dass man nicht auf die Steuerelemente aus dem 1. Thread zugreifen kann. Abhilfe schafft dort
[crayon-6653f8d895d56374628094/]