dotnet C# 多线程集合的 Linq 同步获取值并同时写入集合会导致异常
发布时间
阅读量:
阅读量
在集合发生变动的情况下,无论采用 foreach 循环方式还是利用 Linq 语句进行操作,即便是通过 FirstOrDefault 方法尝试获取首个元素,也可能会导致执行失败。例如以下代码示例,在两个并发线程中,第一个线程尝试使用 FirstOrDefault 方法获取数据,而第二个线程则对集合内容进行了修改。
static void Main(string[] args)
{
var list = new List<string>();
Task.Run(() =>
{
while (true)
{
var str = list.FirstOrDefault();
Console.WriteLine(str);
}
});
Task.Run(() =>
{
while (true)
{
全部评论 (0)
还没有任何评论哟~
