Windows Phone 7> Как прервать асинхронную загрузку - PullRequest
1 голос
/ 22 февраля 2011

Я использую асинхронную загрузку, чтобы извлечь удаленный файл и сохранить его в IsolatedStorage, чтобы использовать его вне сети.

Все отлично работает, когда сеть работает. Однако, находясь вне сети, я заметил, что асинхронная загрузка может занять до 2 минут, прежде чем сработает мой MessageBox (в котором говорится, что соединение с сервером не удалось).

Вопрос: Есть ли способ определить время ожидания? Допустим, что если мое приложение не получило никакого ответа в течение X секунд, остановите загрузку Async и вызовите метод.

Может быть, тайм-аут не лучшая практика. В этом случае вы могли бы дать мне предложение? Я не хочу, чтобы мой пользователь ждал максимум 15 секунд.

PS: мое приложение должно работать только по Wi-Fi, поэтому я считаю, что «скорость сети» оптимальна.

Спасибо за помощь

1 Ответ

2 голосов
/ 22 февраля 2011

Я бы порекомендовал сначала проверить тип сети через NetworkInterface . Если NetworkInterfaceType равно Wireless80211, у вас есть беспроводное соединение (Wi-Fi). Возвращаемое соединение может быть None в случае, если нет доступного способа подключения - поэтому вам даже не придется начинать загрузку, если нет доступной сети.

Отвечая на ваш вопрос, если вы используете WebClient, вы не можете определить время ожидания. Однако вы можете позвонить instance.CancelAsync(). Для HttpWebRequest вы можете позвонить instance.Abort().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...