当前位置:  开发笔记 > 编程语言 > 正文

如何一次限制一个方法调用?

如何解决《如何一次限制一个方法调用?》经验,为你挑选了2个好方法。

我想知道如何实现以下限制:在早期调用完成之前,不应再次调用Windows服务中的一种方法.有问题的方法通过几个数据库表进行,非常重要的是在完成之前不会再次调用此过程.我有一个设置,定义我的服务将激活的频率,在正常情况下,它永远不会在早期调用完成之前激活(因为整个过程不应超过几分钟,间隔设置为10分钟)但不是果然.我猜.

怎么实现这个?



1> user7116..:

您可以使用命名的Mutex或命名的Semaphor e来确保只有一个Mutex/Semaphore的持有者一次执行.正如评论者指出的那样,请记住,必须小心不要放弃互斥锁或不正确地获取/释放信号量.



2> Jon Tackabur..:

一种方法是使用锁定:

private readonly object myLock = new object();

private void MyMethod()
{
   lock(myLock)
   {
      //code goes here
   }
}

这可以确保此方法永远不会再运行一次.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有