lock 方法是做什么用的? 请教一下C#中lock()方法是做什么用的?谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 lock是语句 不是方法网上教程很多 建议看下单件模式的解释就有点懂为什么要用lock(当然 还有别的情景下也需要用到lock) lock顾名思义就是锁定用的语句,你可以锁定一个对象,这样当其它线程同样想锁定(也可能是访问)它时,就会被阻塞在这里,直到你的锁定结束。形象点比喻,是类似WC门的内锁,里边的人把门锁了,外边的人只能排队等 用于做一些互斥操作时用的。比如一个程序的两个模块同时读写一个xml的时候就会抛错。这时候你就可以使用lock,当一个模块在读写xml的时候,将其lock住。这样另一个模块就不会再往里写了。 lock(令牌锁){ }Monitor.Enter();Monitor.Leave();多用在线程同步。 允许读取访问的同时防止其他进程更改 FileStream。 C# public virtual void Lock ( long position, long length)命名空间:System.IO 说的通俗一点,如果有多个线程访问某段代码,使用了lock后,只会有一个线程进入锁定的代码执行操作,如果有一个线程进入,其它线程将等待这个线程执行完毕后才能进入锁定的代码。这样能解决多个线程同时访问某个变量时,出现集合已修改这个错误,个人觉得就是解决这个错误用的。 当多人同时操作时有可能会出现一些意外情况,我们可以应用lock关键词,lock是将语句块标示为临界区,确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其它线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。我自己整理的,希望对你有帮助.详细http://www.cnblogs.com/takako_mu/archive/2010/04/13/1710957.html 请教编程(用C语言或C++):表达式的求值 怎样用c#写个备份和还原oracle数据库的方法或者是类 看看有多少人在用MaxtoCode? 高手帮看看这个查询ACCESS数据库的SQL语句....... 循环中如何响应其它组件的操作(如按钮按下)? dataset 中读取 xml 文件,出现的编码问题 求救:广度优先如何遍历?? API 的问题 如何判断目标窗口是否关闭? 编译成一个文件 关于锁和队列的奇怪问题 焦点问题,好头疼
网上教程很多 建议看下单件模式的解释就有点懂为什么要用lock(当然 还有别的情景下也需要用到lock)
形象点比喻,是类似WC门的内锁,里边的人把门锁了,外边的人只能排队等
比如一个程序的两个模块同时读写一个xml的时候就会抛错。
这时候你就可以使用lock,当一个模块在读写xml的时候,将其lock住。这样另一个模块就不会再往里写了。
{
}
Monitor.Enter();
Monitor.Leave();
多用在线程同步。
public virtual void Lock (
long position,
long length
)命名空间:System.IO