再度呼び出す前に終了する必要があるビジネス ロジック メソッドがあります。複数のクライアントが一度に呼び出すことができます。
public void DoSomething() {}
メソッドをプライベートにして、リクエストをキューに入れる新しいパブリックメソッドを作成することで解決することを考えていました。
public void QueueSomeWork()
{
// put on a Queue object
// How will DoSomething get invoked now?
}
private void DoSomething() {}
私はこの問題をエレガントな方法で解決しようとしています。私の問題はDoSomething()
、実行する方法を知る方法です。キューをチェックするタイマーを作成することも考えましたが、1 年に 2 回程度発生する何かのために 24 時間 365 日稼働することになります。
もう 1 つの考えは、DoSomething()
他の何かがサブスクライブするイベントを発生させ、キューからいくつかの作業を取り出し、 を呼び出すことDoSomething()
です。より良い方法はありますか?