【发布时间】:2014-05-31 02:18:28
【问题描述】:
我有一个可通过特定 URL 访问的 MVC 控制器,当调用该控制器时,它会运行一系列耗时的过程(后处理来自 db 的数据)。
我需要确保当用户调用该方法时,该过程会启动一次。如果任何其他用户在运行后处理时访问该特定 URL,则不会同时发生后处理。
我的问题:
- 我应该在 C# 中使用 locks 吗?
- 我是否应该在 DB 中使用类似 inProgress 的标志,以便标记处理开始和结束的时间?
- 还有其他解决方案吗?
【问题讨论】:
-
“线程安全”和“自动阻止并发访问”不一定是同一回事。
标签: c# .net asp.net-mvc asp.net-mvc-4