Console Application de Résiliation Avant l'Appel asynchrone de l'Achèvement

Je suis actuellement à la rédaction d'un C# console application qui génère un certain nombre d'URLs qui pointent vers différentes images sur un site web et télécharge que les flux d'octets à l'aide de WebClient.DownloadDataAsync().

Mon problème est que une fois le premier appel asynchrone est fait, l'application de console estime que le programme soit terminé et se termine avant que l'appel asynchrone peut revenir. À l'aide d'un Console.Read() je peux forcer la console reste ouverte, mais cela ne semble pas être très bonne conception. En outre, si l'utilisateur appuie sur entrée pendant le processus (alors que la console est en attente d'entrée), le programme prendra fin.

Est-il une meilleure façon de prévenir la console à partir de la clôture alors que je suis en attente d'un appel asynchrone de retour?

Edit: les appels sont asynchrones parce que je suis en fournissant un indicateur de l'état via la console de l'utilisateur alors que les téléchargements de prendre place.