gpt4 book ai didi

c# - WebClient 不支持并发 I/O 操作

转载 作者:IT王子 更新时间:2023-10-29 04:42:34 26 4
gpt4 key购买 nike

如何从 DownloadStringCompleted 事件中获取此错误?那不是说,完了吗?我可以从另一个事件中触发它吗?

我很少遇到这个错误,但偶尔会在我的 WP7 手机上发生。我有一个 Web 客户端,我一遍又一遍地触发它,然后从完成的事件中再次触发它。发生这种情况是因为仍然有一些陈旧的连接打开吗?有没有办法 100% 防止这种情况?

我已经检查过线程是否有机会遍历自身,但它只在已完成的事件中触发。

我怎么能确定,当 complete 事件被触发时,客户端不再处于忙碌状态?一个建议是在客户端忙碌时添加一个线程 sleep 时间。

一些伪代码。

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

void CompletedEvent(){
Dosomestuff;
client.downloadasync(); //This is where we break.
}

最佳答案

WebClient只支持单次操作,不能下载多个文件。你没有显示你的代码,但我的猜测是你在旧的完成之前以某种方式触发了一个新的请求。我敢打赌,当您尝试执行另一次提取时,WebClient.IsBusy 为真。

请参阅以下主题:

wb.DownloadFileAsync throw "WebClient does not support concurrent I/O operations." exception

关于c# - WebClient 不支持并发 I/O 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9765109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com