Oui, vous devez disposer de l'arrière-plan travailleur.
Vous pouvez trouver plus facile à utiliser ThreadPool.QueueUserWorkItem(...)
qui ne nécessite pas de nettoyer après.
Plus de détails sur pourquoi vous devriez toujours faire appel Dispose():
Bien que si vous regardez dans la classe BackgroundWorker il ne fait aucun fil nettoyer dans sa méthode dispose, il est toujours important de Disposer à cause de l'effet de la classe a sur le garbage collector.
Classes avec les finaliseurs ne sont pas GCed immédiatement. Ils sont conservés et ajouté à l'outil de finalisation de la file d'attente. Le finaliseur thread s'exécute, (qui suit le schéma habituel des appels en disposer). Cela signifie que l'objet de survivre en GC de génération 1. Et gen 1 collections sont beaucoup plus rares que les collections de la génération 0, de sorte que vous objet autour de bâtons dans la mémoire de beaucoup plus de temps.
Toutefois, si vous appelez dispose(), l'objet ne sera pas ajouté à la file d'attente de finalisation, est donc libre d'être nettoyée.
Ce n'est pas vraiment un gros problème, mais si vous êtes à la création de beaucoup d'entre eux vous finirez par utiliser plus de mémoire que nécessaire. Il devrait vraiment être considéré comme une bonne pratique de toujours faire appel à disposer sur les objets qui ont une méthode dispose.
Je suppose donc que, dans l'ensemble, il n'est pas à 100% à un dur et rapide exigence. Votre application ne sont pas exploser (ou même une fuite de mémoire) si vous ne faites pas appel Dispose(), mais dans certaines circonstances, il peut avoir des effets négatifs. L'arrière-plan travailleur a été conçu pour une utilisation en tant que WinForms composant afin de l'utiliser de cette façon, si vous avez des exigences différentes et vous ne voulez pas l'utiliser comme un WinForms composant, ne l'utilisez pas, utiliser le bon outil pour le travail, comme le pool de threads.