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