首页 新闻 会员 周边 捐助

多线程的问题?

0
悬赏园豆:20 [已关闭问题]

  private void test(object obj)
        {
            lock (obj)
            {
                RobotLog.SysLog(obj.ToString() + "开始执行", true);
                System.Threading.Thread.Sleep(1000 * 2);
                RobotLog.SysLog(obj.ToString() + "结束执行", true);
 
            }
          
        }

 

我有一个对象,里面有一个定时器,我有多少个实例就有多少个定时器,第一次使用多线程想请教下,上面的代码有问题吗?  还有我多个定时器操作一个泛型集合并且有一个定时器读取这个集合我怎样保证集合的同步?谢谢了

anyTom的主页 anyTom | 初学一级 | 园豆:10
提问于:2010-05-19 09:41
< >
分享
其他回答(2)
0

有问题,你这和没lock一样

Gray Zhang | 园豆:17610 (专家六级) | 2010-05-19 11:09
0

多个定时器同步lock就没什么问题了

主要是lock (obj),obj是一个参数,最好是lock一个外界不能改变的对象,这样有问题。这样最好:

object obj=new object();

lock(obj)

还有lock里面你还写sleep,那是什么意思

LittlePeng | 园豆:3445 (老鸟四级) | 2010-05-19 12:13
sleep是模拟 耗时操作...谢谢你的回答
支持(0) 反对(0) anyTom | 园豆:10 (初学一级) | 2010-05-19 13:41
0

没有看懂

代码苦行僧 | 园豆:311 (菜鸟二级) | 2010-05-19 13:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册