首页 > 解决方案 > ASP.NET MVC 如何使一种方法只能由一个线程同时执行?

问题描述

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

方法是这样的:

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


            return "something"
        }

         
    }

任何想法?

谢谢!

标签: c#asp.net.netmultithreadingthread-safety

解决方案


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

锁定文章

c#锁定文章


推荐阅读