gpt4 book ai didi

c# - 多次调用(一次)一次只能运行一个方法

转载 作者:行者123 更新时间:2023-11-30 13:19:42 25 4
gpt4 key购买 nike

我有一个业务逻辑方法必须先完成才能再次调用。多个客户端可以同时调用它:

public void DoSomething() {}

我正在考虑通过将方法设为私有(private)并创建一个新的公共(public)方法来将请求放入队列来解决它:

public void QueueSomeWork()
{
// put on a Queue object
// How will DoSomething get invoked now?
}

private void DoSomething() {}

我正在尝试以一种优雅的方式解决这个问题。我的问题是 DoSomething() 如何知道要运行。我想过创建一个计时器来检查队列,但它会全天候 24/7 运行,因为每年可能会发生两次。

另一个想法是让 DoSomething() 在完成时触发一个其他东西会订阅的事件,从队列中挑选一些工作,然后调用 DoSomething() .有没有更好的办法?

最佳答案

你为什么不用锁守卫?

例如:

   private static Object lockGuard = new Object();
public void DoSomething()
{
lock (lockGuard)
{
//logic gere
}
}

锁定资源将阻止多个线程同时访问。

关于锁的更多信息:http://msdn.microsoft.com/en-us/library/c5kehkcz(v=vs.110).aspx

关于c# - 多次调用(一次)一次只能运行一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16992430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com