在过去,我通过使用PLINQ可以轻松地将for循环变成一个多任务速度的恶魔。如何异步处理集合集合?
但是,由于处理了一系列集合,我的时间更加困难。
我可能会自己想出来,但我认为看看其他人如何解决这个问题也是有用的。
更新:我相信有下面我的代码的概念问题,但我已经无法用语言表达完全是。如果任何人都可以看到我说的,伟大的,但我会考虑这个越来越尽量使问题更好的整体(或删除它,如果我意识到这是完全我的错)
这里的主要逻辑:
public static void Execute()
{
var service = Locator.Get<ICakeService>();
using (var db = new Cake.Model.CakeContainer())
{
foreach (var campaigns in service.ExportCampaigns())
{
// --> THIS LOOP SHOULD BE EXECUTED IN A SEPARATE THREAD
foreach (var campaign in campaigns)
{
// ... logic to process a campaign ...
}
}
}
}
这里的服务:
public IEnumerable<campaign[]> ExportCampaigns()
{
campaign[] result = null;
var service = new exportSoapClient("exportSoap");
// --> IF I DO A PARALLEL FOREACH HERE THE CLIENT CODE ABOVE
// STOPS MAKING SENSE TO ME...
foreach (var offer in this.ExportOffers())
{
var response = service.Campaigns(
api_key: this.apiKey,
offer_id: offer.offer_id);
yield return result;
}
}
什么是你的问题的一个版本? –
我刚换了标题 –
“绊脚石”是什么意思? –