Завершение консольного приложения перед завершением асинхронного вызова

В настоящее время я пишу консольное приложение на C #, которое генерирует ряд URL-адресов, которые указывают на разные изображения на веб-сайте, а затем загружаю их в виде байтовых потоков с помощью WebClient.DownloadDataAsync () .

Моя проблема заключается в том, что после выполнения первого асинхронного вызова консольное приложение считает, что программа завершена, и завершает работу до того, как асинхронный вызов может вернуться. Используя Console.Read () , я могу заставить консоль оставаться открытой, но это не кажется очень хорошим дизайном. Кроме того, если пользователь нажимает клавишу ввода во время процесса (пока консоль ожидает ввода), программа завершится.

Есть ли лучший способ предотвратить закрытие консоли, пока я жду возврата асинхронного вызова?

Изменить: вызовы являются асинхронными, потому что я предоставляю пользователю индикатор состояния через консоль во время загрузки происходить.

37
задан p.campbell 18 June 2013 в 20:57
поделиться