【发布时间】: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"
}
}
有什么想法吗?
谢谢!
【问题讨论】:
-
请注意,除非数据库位于运行代码的同一台机器上并且只有一个应用程序实例在运行,否则您不能依靠代码本身的同步来保证数据的一致性.相反,代码和数据库应该考虑如何使用乐观并发等方法处理多个写入者,并更新代码以适当地处理此类场景:en.wikipedia.org/wiki/Optimistic_concurrency_control
-
谢谢,我认为这些链接可以指导我
标签: c# asp.net .net multithreading thread-safety