Ich habe eine stilistische Frage zur Auswahl der Hintergrund-Thread-Implementierung, die ich in einer Windows Form-App verwenden sollte. Derzeit habe ich BackgroundWorkerein Formular mit einer (while(true))Endlosschleife. In dieser Schleife WaitHandle.WaitAnydöse ich den Thread so lange, bis etwas Interessantes passiert. Eine der Ereignisbehandlungen, auf die ich warte, ist ein " StopThread" Ereignis, damit ich aus der Schleife ausbrechen kann. Dieses Ereignis wird signalisiert, wenn es von mir überschrieben wird Form.Dispose().
Ich habe irgendwo gelesen, BackgroundWorkerwas wirklich für Operationen gedacht ist, mit denen Sie die Benutzeroberfläche nicht verknüpfen möchten und die ein endliches Ende haben - wie das Herunterladen einer Datei oder das Verarbeiten einer Folge von Elementen. In diesem Fall ist das "Ende" unbekannt und nur bei geschlossenem Fenster. Wäre es daher angemessener, einen Hintergrund-Thread anstelle BackgroundWorkerdieses Zwecks zu verwenden?