Was ist die einfachste Möglichkeit, Hintergrundaufgaben in Windows.Forms auszuführen?

Hintergrundaufgaben sind Aufgaben, die Netzwerk-E / A, Festplatten-E / A oder andere Aufgaben mit langer Laufzeit umfassen, die möglicherweise über ein Netzwerk ausgeführt werden oder nicht. Es vermischt sich häufig mit Code, der die GUI aktualisiert, die auf einem anderen Thread, dem GUI-Thread, ausgeführt werden muss.

Einfach bedeutet, dass der Quellcode beim Öffnen einer Form.cs-Datei genauso einfach oder leichter zu lesen ist als zuvor. In der Praxis muss der Ablauf des Quellcodes in Bezug auf die Reihenfolge, in der der Code ausgeführt wird, immer noch sequentiell gelesen werden, unabhängig davon, auf welchem ​​Thread er ausgeführt wird. Das gesamte tragende Gewebe muss wiederverwendbar und irgendwo versteckt sein, anstatt in jedem Formular enthalten zu sein.

Googeln von MSDN: Es wurde festgestellt, dass die von Microsoft offiziell genehmigte Lösung der System.ComponentModel.BackgroundWorker ist, der in Bezug auf den zweiten Punkt (sehr!) Zu kurz kommt.

(Es gibt auch ein offiziell genehmigtes Silverlight / XAML / 3.5-Lösungsmodell in System.Windows.Threading.Dispatcher.)

Antworten auf die Frage(8)

Ihre Antwort auf die Frage