【发布时间】:2014-06-24 19:32:20
【问题描述】:
我有一个 asp.net 网站,我想阻止对某些代码的并发访问。因为每个页面请求都会有自己的线程 - 这可能是个问题。
如果这只是一段代码 - 我会lock 它。但是,实际上有几种相关的方法。如果一个线程进入其中一个 - 我想阻止其他线程进入任何其中。
我如何做到这一点?
【问题讨论】:
-
如果你真的必须这样做 - 只需锁定一些应用程序级别的对象。
-
所以使用一个锁来控制对所有这些的访问。没有什么说一个锁不能在多个地方使用。
-
看看 C# 中的 Lock 语句:msdn.microsoft.com/en-us/library/c5kehkcz.aspx
-
我会非常谨慎地使用网络服务器上的阻塞锁...这是线程池压力、死锁和延迟的秘诀。它的异步等价物怎么样? blogs.msdn.com/b/pfxteam/archive/2012/02/12/10266988.aspx
-
@ispro ...因为你的代码在线程池中运行,线程池不是为阻塞场景设计的。 ThreadPool 作业应该是短暂的并且永远不会阻塞。
标签: c# asp.net .net multithreading