特定のエンティティで発生する可能性が高いイベントの割合が高く、ネットワーク経由でイベントを転送する必要があります。問題は、これらのイベントが高いレベルのトラフィックと計算を生成し、それが望ましくないことです。メソッドコールの遅延
私の質問は、特定の時間量の計算機能の実行を遅らせる最善の方法でしょう。私の場合、イベントにはバッファリングや発生順序が必要な実際のデータはありません。基本的にイベントが発生するとタイマーを開始し、遅延が終了するとエンティティパラメータで起動します。
タイマーで独自の実装を構築できましたが、それをサポートする必要があるものが既に存在しているようです。
誰かが既存の実装やフレームワークを教えてくれれば大いに感謝します。
編集
[OK]を、私はRX観察可能なパターンを見ていると、それは仕事をすることができますように見えます。私は私がサンプルが加入者への呼び出しを遅らせるべきで
subject.OnNext(someValue);
呼ぶだろう、私はイベントを処理したい時はいつでも私は今、例えば
IDisposable handlers;
Subject<int> subject = new Subject<int>();
handlers = subject.AsObservable().Sample(TimeSpan.FromSeconds(10))
.Subscribe(sample =>
{
Trace.WriteLine(sample);
});
を使用することができ、簡単な実装を見ることができます。 私はこの使用法で正しい場合誰かがコメントできますか?ここで
非常に多くのオプションがあります。 –
いくつかの参考資料が良いでしょう。 – NullReference
確かに、私が提供できる最良のものは、C#Cookbookの並行性です。スティーブンスは、Rx、Dataflowなどのさまざまなアプローチでいくつかの調整方法を提供していますが、私はそれを礼儀として提供しています。誰もあなたに外部リソース参照を提供することを期待するべきではありません。話題にならないようにする。 –