0

RX をテストし、1 秒間隔で 2 つのイベントを提供する Stream() を作成しようとしてテストしています。

private IObservable<string> Stream()
{
    return Observable.Create<string>
    (
        (IObserver<string> observer) =>
        {
            observer.OnNext("a");
            observer.OnNext("b");
            observer.OnCompleted();         
            return Disposable.Create(() => Console.WriteLine("Observer has unsubscribed"));
        }
    );
}

  _refreshFiberStream =
    Stream()
    .SubscribeOn(schedulerProvider.EventLoop) 
    .Select(DoCalc)
    .ObserveOn(schedulerProvider.Dispatcher)
    .Subscribe(Update);

そしてScheduleProvider

 public sealed class SchedulerProvider : ISchedulerProvider
  {
    public IScheduler Dispatcher
    {
      get { return DispatcherScheduler.Current; }
    }

    public IScheduler EventLoop
    {
      get { return new EventLoopScheduler(); }
    }
    // ...
  }

入力ごとに DoCalc メソッドが 2 回呼び出され、続いて Update メソッドが 2 回呼び出されます。DoCalc、DoCalc、Update、Update です。代わりに、DoCalc メソッドの後に Update メソッドが続くシーケンスを確保しようとしています。2 番目の入力のシーケンスを繰り返して、2 番目の入力が最初の入力、DoCalc、Update、DoCalc、Update の結果の上に構築できるようにします。

何かご意見は

4

1 に答える 1