我目前有一个控制台应用程序,它基本上执行无限循环并执行 webrequest。
目前它执行一个循环:获取一个 Web 请求,然后将结果填充到 Mongo 数据库中。这必须为每个请求完成。
我应该使用哪种方法来制作这个多线程?
我目前有一个控制台应用程序,它基本上执行无限循环并执行 webrequest。
目前它执行一个循环:获取一个 Web 请求,然后将结果填充到 Mongo 数据库中。这必须为每个请求完成。
我应该使用哪种方法来制作这个多线程?
您可以只使用Parallel.ForEach
,可能设置最大线程数,然后在整个集合上运行该操作。
请注意,多线程将要求您同步对共享数据的访问。
话虽如此,在这种情况下,您的大部分时间都在等待 IO。因此,使用异步方法调用可能比线程化操作更好,因为线程化只会不必要地阻塞多个线程。MSDN 有一个关于使用 Async 和 Await 访问 Web 的很好的演练,可以转换为您使用。