.net – 代码在多台机器上运行时使用什么代替“lock”语句?

lock statement确保一个线程不会进入关键的代码段,而另一个线程处于临界区.但是,如果工作负载分布在服务器场(例如,一些负载均衡器的几台IIS服务器)中,则不起作用.

.NET支持这种情况吗?
是否有任何类可以用于通过在多台机器上运行的线程来控制关键代码段的执行?

如果没有,是否有任何标准的方法来处理这些问题?

这个问题的灵感来自于discussion that started here,但不限于SharePoint或ASP.NET.

如果您可以访问集中式SQL Server实例,则可以使用它作为分布式锁定协调器,并使用sp_getapplocksp_releaseapplock存储过程来管理应用程序锁.

Application Locks (or Mutexes) in SQL Server 2005

翻译自:https://stackoverflow.com/questions/8189439/what-to-use-instead-of-the-lock-statement-when-the-code-is-running-on-multiple

转载注明原文:.net – 代码在多台机器上运行时使用什么代替“lock”语句?