【发布时间】:2012-10-17 19:46:12
【问题描述】:
可能重复:
How to limit the amount of concurrent async I/O operations?
假设我有一个字符串数组
string[] domains = { "domain1.com", "domain2.com" ,..., "domain100.com"};
我想编写一个使用 5 个线程向这些域发送请求并将响应标头按启动顺序保存到同一日志文件的应用程序。例如:
Thread 1
domain1.com
Response header
Thread 2
domain2.com
Response header
Thread 3
domain3.com
Response header
Thread 4
domain4.com
Response header
Thread 5
domain5.com
Response header
Thread 1
domain6.com
Response header
Thread 2
domain7.com
Response header
我是多线程编程的新手,所以希望你能帮助我。非常感谢
【问题讨论】:
-
为什么要用5个线程来做这个?异步 IO 意味着您无需过多考虑线程,因为 .net 将在 ThreadPool 中安排任何回调。您是否只想限制 5 个并发下载?
-
并且在 C# 5 中使用新的
async支持将比多线程更高效,并且更容易正确处理,因为您不必处理同步和潜在的竞争条件。跨度>
标签: c# multithreading asynchronous