锁定几段代码

时间:2014-06-24 19:32:21

标签: c# asp.net .net multithreading

我有一个asp.net网站,我希望阻止对某些代码段的并发访问。因为每个页面请求都会得到一个自己的线程 - 这可能是个问题。

如果这只是一段代码 - 我{d} lock。但是,实际上有几种相关的方法。如果一个帖子输入一个 - 我想阻止其他帖子进入任何

我如何实现这一目标?

1 个答案:

答案 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
}