线程同步的问题, 创建一个类的2个对象实例,对这个类里的method是否要采用lock的方法,想知道对象创建后是否是共用同一份method code? if you want to lock the method , use lock is perfect , but if you want to share a object for all , use Monitor replace it 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Queue oQueue=new Queue();......Monitor.Enter(oQueue);......//现在oQueue对象只能被当前线程操纵了Monitor.Exit(oQueue);//释放锁 我不是在多个线程里操作一个同一个对象.我的疑惑是在:为一个类创建多个对象实例后,每个对象拥有一个线程,如果每个对象调用同一个方法,如果是static method肯定要加锁吧,如果不是static,是否需要对这个方法method加锁? 如果是static的话,会自动的实现为thread safe的,不用担心。其他的code如果确实会被多个thread使用到,则一定要实现他的同步锁。我认为用lock(this)是最好的。to redbb(....Dotneter....) :我看书上说lock和Monitor其实是一样的东西,只是lock自动实现了Monitor的Enter和Exit. 各位,请先直接回答我的疑惑,行不?多个线程里操作同一个对象的方法,要加锁.我的疑惑是在:为一个类创建多个对象实例后,每个对象拥有一个线程,如果每个对象调用同一个方法,是否需要对这个方法method加锁? to: turnmissile(会翻跟头的导弹) ( )自己写的class的static method 不需要lock吗? >>为一个类创建多个对象实例后,每个对象拥有一个线程,如果每个对象调用同一个方法,是否需要对这个方法method加锁?我答过一次了,不需要。代码是拿来执行的,是READONLY, 因此不需要保护,只有在多线程修改同一个数据时,才需要对数据进行保护。你现在访问的根本不是同一个数据,就不需要保护。 一个算术问题?求高手回答 我的datagridview无法显示新增的列,急求解! AspNetPager分页的问题 datagridview单元格闪烁 请问 ASP.NET2.0 和 C#2005 有什么联系? C#的拖放问题 .NET中拼SQL语句的问题 希望大家提供一个C#教程的FTP 数据解析及事件触发 怎么样成为版主啊? 请问怎么将字符数组置空? 哪位兄弟帮帮忙,提供一个InfragisticsNetAdvantage For.Net2004 vol 1 Full Releases的下载地址...
......
Monitor.Enter(oQueue);
......//现在oQueue对象只能被当前线程操纵了
Monitor.Exit(oQueue);//释放锁
我的疑惑是在:为一个类创建多个对象实例后,每个对象拥有一个线程,如果每个对象调用同一个方法,如果是static method肯定要加锁吧,如果不是static,是否需要对这个方法method加锁?
我看书上说lock和Monitor其实是一样的东西,只是lock自动实现了Monitor的Enter和Exit.
自己写的class的static method 不需要lock吗?
只有在多线程修改同一个数据时,才需要对数据进行保护。
你现在访问的根本不是同一个数据,就不需要保护。