摘要:
今天编写程序时 修改了list集合 在foreach时报 “集合已修改;可能无法执行枚举操作。”错误。首先想到的是没有锁定集合对象。增加了 private readonly object syncRoot = new object();所以先尝试 lock(syncRoot){}lock关键字用法,多线程共用对象时,操作对象时锁定对象,这样如果有别的线程访问对象,则自动加入队列等待。确保对象操作过程中准确性。但是问题依旧,查了一下说foreach是只读的,集合如果变更就会出这个问题于是把foreach改为 for(int i =0) 后,问题解决foreach是取只读的,在取的时候数据不能变( 阅读全文