Справочная информация: у меня есть программа, работающая через список URL; каждый URL-адрес должен загружаться по одному, но он запускается в фоновом потоке, чтобы поддерживать отзывчивость пользовательского интерфейса. Чтобы сообщить о прогрессе, я использую метод DownloadFileAsync. Моя проблема в том, что я хотел бы иметь кнопку отмены, которая немедленно заканчивала бы загрузку. Мой код выглядит как
AutoResetEvent autoMobile = new AutoResetEvent(false);
WebClient dclient = new WebClient();
//setup event handlers... for progress, etc...
dclient.DownloadFileAsync(new Uri(egg.DownloadURL), egg.LocalFilePath);
autoMobile.WaitOne();
//end of DoWork
Я не могу придумать способ или место для вставки цикла для проверки ожидающих отмены. Я лишь немного понимаю темы и не совсем понимаю AutoResetEvent.