2013-07-23 67 views
-2

我目前有一个控制台应用程序,它基本上做了一个无限循环,并做webrequest。多线程控制台应用程序问题c#

但我想知道什么多线程库会对此有好处。

所以目前它做了一个循环获取Web请求,然后在Mongo数据库中填充结果。这必须为每个请求完成。

位坚持哪种方法将是理想的?

任何建议都会很好。

感谢

+0

System.Threading.Thread是一个不错的选择。 –

+3

@HanletEscaño:不;它不是。使用TPL。 – SLaks

+0

你实际上想要异步,而不是线程。 – SLaks

回答

1

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

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

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

+0

干杯会看看那个。当我尝试使用并行时,由于网络请求和响应未完成而导致问题。但会看看链接。 – tjhack