【问题标题】:ASP.NET MVC How to make that one method is executed only by one thread simultaneously?ASP.NET MVC 如何使一种方法只能由一个线程同时执行?
【发布时间】:2020-10-22 19:24:39
【问题描述】:

我有一个从 ActionResults 方法调用的静态方法。静态方法调用更新数据库中的共享数据,所以,我需要静态方法只能被每个请求执行,然后在上一次调用完成之前不能再次执行。

方法是这样的:

    public static class GeneralSettings
    {
      
        public static string GetSSCC(string precode, int totalDigitNumber)
        {
            //Call to database to update data 
            [...]


            return "something"
        }

         
    }

有什么想法吗?

谢谢!

【问题讨论】:

标签: c# asp.net .net multithreading thread-safety


【解决方案1】:

您应该使用锁或监视器来实现线程同步,即一次只允许一个线程访问一个函数/变量。参考以下文章:

Lock Article

c# Lock Article

【讨论】:

  • 谢谢,当共享数据是内存中的变量时,我已经看到了这些方法,但它也可以用于同步调用数据库的方法?
  • 无论你在 lock 中放了什么......另一个线程必须等待第一个线程
猜你喜欢
  • 1970-01-01
  • 2018-05-09
  • 1970-01-01
  • 2018-10-28
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 2011-04-19
  • 1970-01-01
相关资源
最近更新 更多