这是交易,我有一个网站,需要从多个webservices搜索,然后加入从webservices返回的所有结果,并显示混合。我已经完成了在一个地方搜索一个地方的代码
WsPesquisa pesq = new WsPesquisa();
IEnumerable<Objecto> Resultados = pesq.PesquisaObjecto("URL TO SEARCH", "TEXT TO SEARCH");
现在我需要使用线程一次在多个地方进行搜索,但对如何这样做有疑问。
有人可以提供一个线程示例来多次调用我上面使用过的代码,然后加入一个Objectos列表中所有线程的结果吗?
提前致谢
答案 0 :(得分:0)
执行此操作的一种方法是使用标准LINQ查询,并使用PLINQ来并行化。
假设您的查询存储在query
中,您要搜索的网站列表存储在名为sites
的变量中,并且您有一个运行搜索的方法SearchSite(string query, string site)
一个网站,以下应该做的伎俩:
var searchResults = from site in sites.AsParallel()
select SearchSite(query, site);
var resultList = new List<object>();
foreach (var searchResult in searchResults)
{
// process result
resultList.Add(searchResult);
}
这假设每个站点的搜索查询相同,所以:
AsParallel()
表示您希望LINQ查询并行运行select SearchSite(query, site)
- 接受您的查询并在其上运行SearchSite
方法