c# – 两个或多个线程可以在同一个列表中迭代,没有任何问题?
|
谈论System.Collections.Generic.List< T>这里.
下面的例子可以方法1和方法2执行同一时间,在不同的线程上没有任何问题? 谢谢 class Test
{
private readonly List<MyData> _data;
public Test()
{
_data = LoadData();
}
private List<MyData> LoadData()
{
//Get data from dv.
}
public void Method1()
{
foreach (var list in _data)
{
//do something
}
}
public void Method2()
{
foreach (var list in _data)
{
//do something
}
}
}
解决方法
是,列表< T>只要没有线程修改列表,就可以安全地从多个线程中读取.
从the docs:
(关于重复“本质上不是一个线程安全的过程”的观点是针对其他突变列表的). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
