请教一下C#中lock()方法是做什么用的?谢谢。

解决方案 »

  1.   

    lock是语句 不是方法
    网上教程很多 建议看下单件模式的解释就有点懂为什么要用lock(当然 还有别的情景下也需要用到lock)
      

  2.   

    lock顾名思义就是锁定用的语句,你可以锁定一个对象,这样当其它线程同样想锁定(也可能是访问)它时,就会被阻塞在这里,直到你的锁定结束。
    形象点比喻,是类似WC门的内锁,里边的人把门锁了,外边的人只能排队等
      

  3.   

    用于做一些互斥操作时用的。
    比如一个程序的两个模块同时读写一个xml的时候就会抛错。
    这时候你就可以使用lock,当一个模块在读写xml的时候,将其lock住。这样另一个模块就不会再往里写了。
      

  4.   

    lock(令牌锁)
    {
       
    }
    Monitor.Enter();
    Monitor.Leave();
    多用在线程同步。
      

  5.   

    允许读取访问的同时防止其他进程更改 FileStream。 C# 
    public virtual void Lock (
    long position,
    long length
    )命名空间:System.IO
     
      

  6.   

    说的通俗一点,如果有多个线程访问某段代码,使用了lock后,只会有一个线程进入锁定的代码执行操作,如果有一个线程进入,其它线程将等待这个线程执行完毕后才能进入锁定的代码。这样能解决多个线程同时访问某个变量时,出现集合已修改这个错误,个人觉得就是解决这个错误用的。
      

  7.   

    当多人同时操作时有可能会出现一些意外情况,我们可以应用lock关键词,lock是将语句块标示为临界区,确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其它线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。我自己整理的,希望对你有帮助.详细http://www.cnblogs.com/takako_mu/archive/2010/04/13/1710957.html