我有一个业务逻辑方法,必须先完成才能再次调用它。多个客户端可以一次调用它:
public void DoSomething() {}
我正在考虑通过将方法设为私有来解决它,并创建一个新的公共方法来将请求放在队列中:
public void QueueSomeWork()
{
// put on a Queue object
// How will DoSomething get invoked now?
}
private void DoSomething() {}
我试图以一种优雅的方式解决这个问题。我的问题是如何DoSomething()
知道运行。我考虑过创建一个计时器来检查队列,但是对于每年可能发生两次的事情,它将全天候运行 24/7。
另一个想法是在DoSomething()
完成后触发一个其他东西会订阅的事件,从队列中挑选一些工作,然后调用DoSomething()
. 有没有更好的办法?