2

MEFアプリケーションをリンクするために、ここにあるイベント アグリゲーターを使用しています。実際にデータを必要とするモジュールにデータを配布するのに最適です。

私はリアクティブ拡張機能の使用にもっと慣れてきており、次のことをしようとしています:

eventSubscription = MainApp.Events.GetEvent<UDPMessageIn>()
                                  .BufferWithTime(TimeSpan.FromSeconds(1))
                                  .Subscribe(x => 
                                       { 
                                           // do something here...
                                       });

ただし、イベント アグリゲーターは、以下の Publish メソッドでハングしているように見えます。

((ISubject<TEvent>)subject).OnNext(sampleEvent);

system.reactive またはアグリゲーターの設計について、私が完全に理解していない何かがあると推測しています。誰かアイデアはありますか?

4

2 に答える 2

1

プロデューサーとコンシューマーの両方が実行されているスレッドは何ですか? それらは別々ですか?

試す:

.BufferWithTime(TimeSpan.FromSeconds(1), Scheduler.TaskPool);
于 2010-11-09T05:12:13.790 に答える
0

これは、Rxやイベントアグリゲーターとは関係のないスレッドの問題であることが判明しました。

UI Invokesの1つをBeginInvokeに変更すると、ハングするのを防ぎ、コードの適切な部分を確認することができました...

于 2010-11-23T14:59:57.080 に答える