不喝橙汁

一切皆有可能!

多线程操作GridView时出现索引被破坏的问题

msdn上如下解释:

volatile 关键字用于通知编译器,将有多个线程访问 _shouldStop 数据成员,因此它不应当对此成员的状态做任何优化假设。有关更多信息,请参见volatile(C# 参考)

通过将 volatile 与 _shouldStop 数据成员一起使用,可以从多个线程安全地访问此成员,而不需要使用正式的线程同步技术,但这仅仅是因为 _shouldStop 是 bool。这意味着只需要执行单个原子操作就能修改 _shouldStop。但是,如果此数据成员是类、结构或数组,那么,从多个线程访问它可能会导致间歇的数据损坏。假设有一个更改数组中的值的线程。Windows 会定期中断线程,以便允许其他线程执行。因此,此线程会在分配某些数组元素之后和分配其他元素之前被停止。由于数组现在有了一个程序员从不想要的状态,因此,读取此数组的另一个线程可能会失败。

传送门在此

内部索引已损坏异常的解决方法
本人的解决方法是直接lock(datatable),哈哈是不是有点暴力?恩,其实你可以只锁定其中需要的那一行,也是可行的.
阅读更多
个人分类: .Net相关知识
上一篇解决下载网页乱码的方法
下一篇Scheme 和 ZOJ
想对作者说点什么? 我来说一句

多线程出现问题

2012年11月30日 3KB 下载

GridView显示大量图片

2015年07月24日 3.42MB 下载

autocad考试题 平常考试

2009年05月08日 26KB 下载

js 动态新增改变删除select的值

2011年06月23日 7KB 下载

没有更多推荐了,返回首页

关闭
关闭