Ich habe eine stilistische Frage zur Auswahl der Hintergrund-Thread-Implementierung, die ich in einer Windows Form-App verwenden sollte. Derzeit habe ich BackgroundWorker
ein Formular mit einer (while(true))
Endlosschleife. In dieser Schleife WaitHandle.WaitAny
dö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, BackgroundWorker
was 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 BackgroundWorker
dieses Zwecks zu verwenden?