通过索引从 List 获取元素是线程安全的吗?
var list = new List<int>();
...
var a = list[i]; //executed from multiple threads. Should this be protected?
它是绝对线程安全的...
...只要您能确保列表不被更改。即使添加项目也会让您进入“未定义”的领域(尽管根据实现它可能会起作用)。
所以,只读 - 是的。读取+操作:否。
注意:只要 list[5] 是同一个对象,就可以更改 lsit 中的项目。该列表并不关心。并不是说它会起作用 - 因为根据您在此处要更改的内容,这将是您与列表中的对象的合同。对于整数,你显然不应该更新它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)