如何顺序执行异步操作?

v00*_*d00 9 c# silverlight

现在我正在使用类似于这种结构的东西

A.Completed += () =>
{ B.Completed += () =>
  {  C.Completed += () =>
     {
       //
     }
     C();
   }
   B();
 }  
 A();
Run Code Online (Sandbox Code Playgroud)

并不是很满意.是否有更好,更清洁的方式来执行此类后续/并发操作执行?

我看看Rx框架,但它是为其他任务设计的,看起来像我的问题有点过分.

Chr*_*man 8

除非有人在A完成之前实际调用B或C,否则无需嵌套设置已完成事件.如果你把它分开,这就是它的样子:

A.Completed += () => { B(); };
B.Completed += () => { C(); };  
C.Completed += () => { //   }; 

A();
Run Code Online (Sandbox Code Playgroud)

我认为删除嵌套实际上使它更清洁.


Gio*_*rgi 4

看看ReactiveUI。它基于 Rx,会大大简化你的代码。这是一个示例:使用 ReactiveXaml 在 Silverlight 中调用 Web 服务