我有一个foreach循环,它发送WCF请求如下:
foreach (var rec in LstPRSCRPTActivated)
{
var OrderItemQueryActivated = GV.dbContext.Load(GV.dbContext.GetOrdritemsQuery((int)rec.PresNo));
OrderItemQueryActivated.Completed += new EventHandler(OrderItemQueryActivated_Completed);
}
在WCF数据服务中,我有以下代码:
public IQueryable<OrderItem> GetOrdritems(int PresNo)
{
return this.ObjectContext.OrderItems.Where(o => o.ScriptNo == PresNo);
}
如果第二个查询花费的时间少于第一个查询,则在回调事件OrderItemQueryActivated_Completed
中,我从第二个查询中获取结果,然后从第一个查询中获取结果。但我不希望以这种方式发生。我想首先获得第一个查询的结果,然后是第二个。有没有办法在服务中使用某种等待来做到这一点?
答案 0 :(得分:1)
是否可以创建一个复合服务调用,在一次调用中执行所有操作?如果没有,您可以并行调用所有操作并等待它们完成以获得结果。