Comment faire pour savoir si d'autres threads ont fini?

J'ai un objet avec une méthode nommée StartDownload(), qui commence à trois fils.

Comment puis-je obtenir une notification chaque thread a fini de s'exécuter?

Est-il un moyen de savoir si l'un (ou l'ensemble) de la thread est terminé ou est encore en cours d'exécution?