我有一个asp.net网站,我希望阻止对某些代码段的并发访问。因为每个页面请求都会得到一个自己的线程 - 这可能是个问题。
如果这只是一段代码 - 我{d} lock
。但是,实际上有几种相关的方法。如果一个帖子输入一个 - 我想阻止其他帖子进入任何。
我如何实现这一目标?
答案 0 :(得分:2)
好吧,你可以锁定一些可被所有代码块访问的对象 - 理想情况下它将是internal
对象(如果所有代码都在一个类中,则为private
)所以没有外部代码可以锁定它并阻止你的代码:
public class Global : System.Web.HttpApplication
{
internal static readonly object LockObject = new Object();
...
}
......同时......
lock(Global.LockObject)
{
// code block 1
}
......其他地方......
lock(Global.LockObject)
{
// code block 2
}