WebClient не поддерживает одновременные операции ввода-вывода

Как я могу получить эту ошибку из с в Событии DownloadStringCompleted? Разве это не значит, что с этим покончено? Есть ли другое событие, из которого я могу запустить это?

Я получаю эту ошибку крайне редко, но время от времени она возникает на моем телефоне WP7. У меня есть веб-клиент, который я запускаю снова и снова, и я снова запускаю его из завершенного события. Это происходит из-за того, что все еще открыто какое-то устаревшее соединение? Есть ли способ предотвратить это на 100%?

Я проверил, есть ли у потока шанс выйти за пределы самого себя, но он запускается только из завершенного события.

Как я могу быть уверен, что при запуске события complete клиент больше не isBusy? Одно предложение состояло в том, чтобы добавить некоторое время с спящим потоком, пока клиент занят.

Какой-то псевдокод.

var client = new WebClient("URL 1");
client.CompletedEvent += CompletedEvent;
client.downloadasync();

void CompletedEvent(){
Dosomestuff;
client.downloadasync(); //This is where we break.
}
20
задан firebellys 20 March 2012 в 08:00
поделиться