我不擅长多线程,但自从我将以下行添加到我的应用程序后,它似乎经常崩溃,所以我假设它不是线程安全的。
私有(private)只读字符串[] _foo = Enumerable.Range(1, 1000).Select(i => i.ToString()).ToArray();
我有什么选择可以使这个线程安全?
最佳答案
初始化数组的代码没问题。您将数组标记为 readonly
,这意味着无法将新数组分配给 _foo
字段 - 但您的代码仍然可以修改数组的元素.操作本身不会导致crash,但是如果从多线程改变数组,可能会得到意想不到的结果。
没有更多信息,很难说出问题是什么。您的应用程序在哪些方面崩溃?
关于c# - 线程安全数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6098409/