J'ai un style de question sur le choix de la thread d'arrière-plan de mise en œuvre, je devrais utiliser sur un formulaire windows app. Actuellement, j'ai un BackgroundWorker
sur un formulaire qui a une infinie (while(true))
boucle. Dans cette boucle, j'utilise WaitHandle.WaitAny
pour garder le fil de siestes jusqu'à ce que quelque chose d'intéressant se passe. L'un des événements les poignées j'attends, c'est un "StopThread
" de l'événement afin que je puisse sortir de la boucle. Cet événement est signalé lors de mon substituée Form.Dispose()
.
J'ai lu quelque part qu' BackgroundWorker
est vraiment destiné pour les opérations que vous ne voulez pas à la cravate de l'INTERFACE utilisateur avec et ont un fini fin - 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 seulement lorsque la fenêtre est fermée. Donc serait-il plus approprié pour moi d'utiliser un Thread d'arrière-plan au lieu de BackgroundWorker
pour ce but?