获取Web请求的多线程控制台应用程序

时间:2013-07-23 19:00:43

标签: c# multithreading

我目前有一个控制台应用程序,它基本上执行无限循环并执行webrequest。

目前它执行循环:获取Web请求,然后在Mongo数据库中填充结果。必须为每个请求执行此操作。

我应该使用哪种方法来实现这种多线程?

1 个答案:

答案 0 :(得分:1)

您可以使用Parallel.ForEach,可能设置最大线程数,并对整个集合运行操作。

请注意,多线程将要求您同步对共享数据的访问权。

话虽如此,在这种情况下,你的大部分时间都在等待IO。因此,使用异步方法调用可能比线程操作更好,因为线程将不必要地阻塞多个线程。 MSDN有一个很好的Walkthrough on Accessing the Web using Async and Await,可以转换为您使用。