gpt4 book ai didi

时间:2019-03-08 标签:c#webclientasync

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:48 26 4
gpt4 key购买 nike

我继承了一个 c# 应用程序,它通过 Webclient downloadfileasync 从大约 380 个站点采样数据。为每个站点创建一个单独的线程! (每次下载都在下载下一个数据之前等待超时时间 - 所以负载不是恒定的......但仍然!)无论如何,随着网站数量在未来一年左右增加(可能会急剧增加),我想将其更改为一些(合理数量)的工作线程,这些工作线程会针对站点的子集发出一堆 Webclient downloadfileasync 调用。但是我不确定如果多个下载同时完成会发生什么 - downloadfilecompleted 事件处理程序是否会被 webclient 序列化?或者多个 webclient 完成可以“同时”发生(或者更可能是交错的)?我会冒一个完成破坏另一个的风险吗?或者有人对如何管理当前实现中的线程爆炸有更好的建议吗?

提前致谢。

最佳答案

期望可能同时引发多个完成事件 - 但除非有一些您没有仔细处理的共享状态,否则应该没问题。结果不应该被“破坏”——如果他们这样做,那肯定是 .NET 中的错误。

请注意,如果您使用异步调用,您可能不需要工作线程 - 异步处理的全部意义在于您发出调用,然后不要阻止线程,因此可以从 UI 线程(或其他线程)执行此操作。

如果您能够使用尖端技术,C# 5/.NET 4.5(处于候选 Release模式)中的异步/等待功能可以让您的生活变得更加轻松。

关于时间:2019-03-08 标签:c#webclientasync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11089095/

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