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 BackgroundWorkerun formulaire sur une (while(true))boucle infinie . Dans cette boucle, j'utilise WaitHandle.WaitAnypour garder le thread en sommeil jusqu'à ce que quelque chose d'intéressant se produise. Un des descripteurs d'événements sur StopThreadlesquels 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 BackgroundWorkerest 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 BackgroundWorkerdans ce but?