【发布时间】:2011-07-21 13:19:42
【问题描述】:
所以我正在阅读 Rx 并且很难理解它。我有一个 Silverlight 应用程序,需要异步调用 6 次特定服务。在过去,我们会通过调用并查询 userState/token 以将响应与请求相匹配来处理这个问题,因为它们不能保证按照我们调用它们的顺序返回。然而,我怀疑 Rx 以一种更优雅的方式处理这个问题。但我无法让它工作。这是我到目前为止所拥有的......
myCollection.Add(new myObject(1));
myCollection.Add(new myObject(2));
myCollection.Add(new myObject(3));
myCollection.Add(new myObject(4));
myCollection.Add(new myObject(5));
myCollection.Add(new myObject(6));
foreach (var myItem in myCollection)
{
var myObservable = Observable.FromEventPattern<MyServiceMethodCompletedEventArgs>
(
f => myServiceClient.MyServiceMethodCompleted += f,
f => myServiceClient.MyServiceMethodCompleted -= f
).Take(1).ObserveOn(SynchronizationContext.Current);
myObservable.Subscribe
(
s =>
{
if (s.EventArgs.Error == null)
{
myItem.MyProperty = s.EventArgs.Result;
}
}
);
myServiceClient.MyServiceMethodAsync(myItem);
}
我希望你能在这里看到我想要实现的目标......
我最终得到的是所有 myObject 都被设置为返回的第一个调用的结果。
我确定这很愚蠢,但我还没有弄清楚。
谢谢:)
【问题讨论】:
标签: silverlight system.reactive