博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集合的线程安全
阅读量:5274 次
发布时间:2019-06-14

本文共 336 字,大约阅读时间需要 1 分钟。

 

ICollection.SyncRoot返回一个对象,该对象可用于同步对  的访问。

枚举整个集合本质上不是一个线程安全的过程。 即使某个集合已同步,其他线程仍可以修改该集合,这会导致枚举数引发异常。 若要在枚举过程中保证线程安全,可以在整个枚举过程中锁定集合,或者捕捉由于其他线程进行的更改而引发的异常。

下面的代码示例演示如何在整个枚举过程中使用  属性锁定集合。

 

ICollection myc = "a1,c,c4c,4,ks".Split(',');

lock (myc.SyncRoot) {
foreach (string a in myc) {

}

}

转载于:https://www.cnblogs.com/jyluzy/p/2013-9-27_2.html

你可能感兴趣的文章
vim 乱码问题的方法参考
查看>>
关于jquery方面的知识点
查看>>
使用jenkins docker容器的坑
查看>>
hello2 Source Analisis
查看>>
onclikc事件和onmousedown事件的区别与联系
查看>>
BZOJ 3456: 城市规划 多项式求逆
查看>>
BZOJ 1834: [ZJOI2010]network 网络扩容 最小费用流_最大流_残量网络
查看>>
NOI2018 你的名字 后缀自动机 + 线段树合并 + 可持久化
查看>>
学习笔记之03百度搜索页面
查看>>
Solr
查看>>
网络7层协议,4层,5层?理清容易混淆的几个概念
查看>>
转载---编写高质量代码:改善Java程序的151个建议(第3章:类、对象及方法___建议47~51)...
查看>>
并查集模板
查看>>
PHP preg_match的简单使用,验证邮箱地址
查看>>
12小球称重问题
查看>>
Java 动态代理
查看>>
浅谈分页技术
查看>>
如何成为优秀开发人员[1]:关于兴趣
查看>>
debounce
查看>>
可选颜色--六中色调的调整(一)
查看>>