J'ai une question stylistique sur le choix de l'implémentation du thread d'arrière-plan que je devrais utiliser sur une application Windows Form. Actuellement, j'ai BackgroundWorker
un formulaire sur une (while(true))
boucle infinie . Dans cette boucle, j'utilise WaitHandle.WaitAny
pour garder le thread en sommeil jusqu'à ce que quelque chose d'intéressant se produise. Un des descripteurs d'événements sur StopThread
lesquels j'attends est un événement " " pour que je puisse sortir de la boucle. Cet événement est signalé lors de mon dépassement Form.Dispose()
.
J'ai lu quelque part qui BackgroundWorker
est vraiment destiné aux opérations avec lesquelles vous ne voulez pas lier l'interface utilisateur et qui ont une fin finie - comme le téléchargement d'un fichier ou le traitement d'une séquence d'éléments. Dans ce cas, la "fin" est inconnue et uniquement lorsque la fenêtre est fermée. Par conséquent, serait-il plus approprié pour moi d'utiliser un thread d'arrière-plan plutôt que BackgroundWorker
dans ce but?