【问题标题】:locking the condition of if block锁定 if 块的条件
【发布时间】:2013-12-21 21:58:48
【问题描述】:

我正在使用 .net 2.0。 语言:c# 我有需要锁定 IF 块条件的情况。 下面给出了我想要实现的简化代码。

 Public static readyonly object _obj=new object();
 if(
       lock(_obj)
     {
        //if conditition in form of expression
     }
   )  

实际上 if 块的条件是调用另一个服务器。所以我需要让它线程安全。 上面的流程正确吗?还是有其他方法可以实现这一目标?或者我必须锁定整个 if 块

【问题讨论】:

    标签: if-statement locking c#-2.0


    【解决方案1】:

    lock 语句是关键字而不是方法。它不返回任何内容,因此上述实现是不正确的。您的问题中也有一些错别字。

    public static readonly object _obj = new object();
    
    void Main()
    {
        // Any other thread is blocked from acquiring the lock and waits until the lock is released.
        lock (_obj)
        {
            // Perform "Safe" Work Here
        }
    }
     
    

    如果您想了解有关锁的工作原理的更多信息,请参考 Microsoft 文档 located here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-21
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 2013-02-03
      • 2016-12-04
      • 1970-01-01
      相关资源
      最近更新 更多