C#如何在IObservable中获取异步调用,等待其他异步调用执行

时间:2016-06-25 07:58:44

标签: c# asynchronous

我有一个带有2个异步调用的应用程序,我需要在第二个工作流中的OnNext被激活之前等待第一个完成,这样如果第一个错误然后第二个没有被执行。但目前第二个在第一次调用返回之前执行。下面给出的是简化代码,请帮助我在这里应用合适的等待机制。我试过等待但是无法正常工作。

 public IObservable<dataType> MainMethod()
        {
          return Observable.Create<dataType>(
           (observer) =>
           {
             AsyncCommandClass cmd = new AsyncCommandClass("commandmethodPAth");
             command.CommandCompleted += (sender, args) =>
             {
               ///handle failure
             };

             this.ExecuteAsyncCommand(cmd);

             // Execute the other internal asynchronous workflow 
            this.Workflow2()
             .AsSequential()
             .Subscribe(
             (next) =>
             {
                     },
           (error) =>
             {
              observer.OnError(error);
              },
             () =>  // completed
              {
                 observer.OnNext(new dataType());  // this call should not execute if previous one errors
                 observer.OnCompleted();
              });
              return () =>
                    {
                    };
                });
        }

0 个答案:

没有答案