C# 如何逐个调用多个调用操作?
我需要根据存储在C# 如何逐个调用多个调用操作?,c#,silverlight,silverlight-5.0,C#,Silverlight,Silverlight 5.0,我需要根据存储在observateCollection中的用户选择的项调用一些调用操作(所有不同),并返回字符串/int值 现在,当选择仅为一项时,它是直接进行的,我可以调用并使用Completed事件并获取我的返回值 我有大约{ //获取将其分配给Textblock的值。 }; 打破 案例:2 InvokeOperation inv=上下文。为_2(项目)执行更新; 库存已完成+=(s,a)=>{ //获取将其分配给Textblock的值。 }; 打破 //其他类似情况 } } 看看Silve
observateCollection
中的用户选择的项调用一些调用操作(所有不同),并返回字符串/int值
现在,当选择仅为一项时,它是直接进行的,我可以调用并使用Completed
事件并获取我的返回值
我有大约{
//获取将其分配给Textblock的值。
};
打破
案例:2
InvokeOperation inv=上下文。为_2(项目)执行更新;
库存已完成+=(s,a)=>{
//获取将其分配给Textblock的值。
};
打破
//其他类似情况
}
}
看看Silverlight的反应式扩展。您将能够轻松地将RIA服务
InvokeOperation
包装在一个IObservable
中,它表示其异步完成。一种方法是使用Observable.Create
方法
之后,您将能够以多种方式组合iobservable
集合:使用Observable.Concat
按顺序执行它们,使用Observable.ForkJoin
并行执行它们,过滤它们,加入它们等等
我已经成功地将其用于RIA服务的加载操作,并在较小程度上调用操作。在我看来,与显式编写回调方法相比,使用可观察对象的可组合性要好得多
下面是一篇博客文章,概述了加载操作的方法,但方法非常相似:您所说的“调用操作”到底是什么意思?请给我们一些代码。我猜他想为每个选定的项调用一个(异步)方法,他有一个方法签名,一次只接受一个项,并且不知道如何链接调用。我的第一个建议是编写一个方法,该方法接受一组项,异步调用它,并在该方法中执行foreach。
//Pseudo-code
foreach (var item in SelectedItems)
{
var id = item.ID;
switch(id)
{
case: 1
InvokeOperataion<int> inv = context.PerformUpdateFor_1(item);
inv.Completed += (s,a) => {
//get the value assign it to Textblock.
};
break;
case: 2
InvokeOperataion<int> inv = context.PerformUpdateFor_2(item);
inv.Completed += (s,a) => {
//get the value assign it to Textblock.
};
break;
//Other cases similar to this
}
}