Я разрабатываю проект С# для загрузки файлов из Интернета.
Я покажу их прогресс, пока идет загрузка. И я должен поддерживать свойство тайм-аута.
Я пытался использовать класс WebClient. Существуют функции DownloadFile() и DownloadFileAsync().
- Когда я использую функцию DownloadFile(), я могу установить свойство Timeout, переопределяя функцию GetWebRequest(). Однако я не могу запускать обработчики событий, поэтому я не могу показать прогресс.
- Когда я использую функцию DownloadFileAsync(), я могу запустить обработчики событий, чтобы показать прогресс. Но в этом случае я не могу установить тайм-аут.
В Интернете я могу найти несколько статей о том, как установить время ожидания вручную с помощью потоков.
Однако я считаю, что все они неверны. Они устанавливают тайм-аут в течение всего процесса загрузки. Но загрузка будет короткой или долгой в зависимости от размера файла.
Как я могу решить эту проблему?
AsyncWaitHandle
из вашего методаDownloadFileAsync
илиWebClient
? Я пытаюсь загрузить несколько файлов в цикле, и мне интересно посмотреть, как вы решили свою проблему. - person Jeff Noel   schedule 25.07.2017