假设我有100个任务需要10秒钟.现在我想一次只运行10个,就像10个中的1个完成另一个任务一样,直到完成所有任务.
现在我总是习惯于ThreadPool.QueueUserWorkItem()这样的任务,但我已经读到这样做是不好的做法,我应该使用任务.
我的问题是我没有找到适合我的方案的好例子,所以你能让我开始研究如何通过Tasks实现这个目标吗?
我必须从互联网上下载大约 16k 个文档和相同数量的 html 页面。这个数字在未来还会增加。目前我只是Parallel.ForEach用来并行下载和处理数据。然而,这似乎并没有充分利用我的资源,所以我计划async/await发挥作用,尽可能多地异步运行下载,但我可能不得不限制它。
单个可以有多少个打开的连接HttpClient?在创建如此大量的连接时,我还必须记住哪些其他因素?我知道我应该重用它HttpClient,我也阅读了这个答案,但我怀疑我是否真的可以同时打开数十亿个连接。