最后在subscribe处理完所有消息之前调用

时间:2017-12-13 22:32:48

标签: system.reactive

我写了一个主题,用于推送我从RabbitMQ收到的消息。

我希望在最终被触发之前总是收到订阅上的所有消息,但我通常没有收到所有消息,并且可以看到在最终被调用之后调用了订阅。

_messageSummarySubject = new Subject<MessageSummary>();
_subscriber = _messageSummarySubject
    .Finally(Finisehd)
    .Buffer(TimeSpan.FromMilliseconds(100))
    .SubscribeOn(Bootstrapper.Resolve<ISchedulerService>().DispatcherScheduler)
    .ObserveOn(Bootstrapper.Resolve<ISchedulerService>().DispatcherScheduler)
    .Subscribe(
        x =>
        {
            //This is sometime called after finally
        });
ThreadPool.QueueUserWorkItem(s => SomeAction(_messageSummarySubject));

SomeAction基本上是在调用

subject.OnNext(messageSummary);

在线程中几次,一旦线程关闭,调用subject.OnCompleted();

这是正确的行为还是我做错了什么?

0 个答案:

没有答案