c# Linq Where 抛出异常 导致 程序崩溃

Collection was modified; enumeration operation may not execute” 


这次项目中遇到一个问题, 就是C#程序随机崩溃, 抛出上面的异常。 
经过debug后,发现原因是:c#的linq用Where关键字查询列表时,其他线程在操作此列表, 导致Where查询转换为Foreach时抛出异常。

解决办法: 应该有个全局的信号量来负责同步对列表的操作。 在执行Where查询时等待信号量; 在其他线程中设置、复原信号量。



posted @ 2013-07-03 11:41  muzizongheng  阅读(505)  评论(0编辑  收藏  举报
如果我们时时忙着展现自己的知识, 将何从忆起成长所需的无知?