gpt4 book ai didi

c# - 这是线程安全的代码?

转载 作者:行者123 更新时间:2023-12-03 13:21:50 24 4
gpt4 key购买 nike

很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。如需帮助澄清这个问题以便重新打开它,visit the help center .




10年前关闭。




这段代码可以抛出异常吗?

public String[] GetPorts()
{
var sourceArray = Data;
var array = new String[sourceArray.Count];
for (int i = 0; i < array.Length; i++)
{
array[i] = Data[i][0];
}
return array;
}

数据为 List<String[3]>

最佳答案

如果 Data可以从另一个线程更改,您遇到了问题。例如,如果 Data的大小在迭代过程中可能会改变,你可能会得到 IndexOutOfBoundException .此外,Data 可能不支持同时读写。 (在您使用您提供的代码阅读它的同时,其他线程可能会完成编写。)

你应该保护Data带有互斥锁。

如果我们知道 Data 是什么数据类型,我们可以为您提供更多信息。 .

根据MSDN , List<T>不支持并发读者和作者。所以你必须保护Data如果其他代码可以写入它。

关于c# - 这是线程安全的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com