I'm currently writing a C# console app that generates a number of urls that point to different images on a web site and then downloads those URLs as byte streams using WebClient.DownloadDataAsync.
My issue is that once the first asynchronous call is made, the console app considers the program to be completed and terminates before the asynchronous call can return. By using a Console.Read() I can force the console to stay open but this doesn't seem like very good design. Furthermore if the user hits enter during the process (while the console is waiting for input) the program will terminate.
Is there a better way to prevent the console from closing while I am waiting for an asynchronous call to return?
Edit: the calls are asynchronous because I am providing a status indicate via the console to the user while the downloads take place.