我熟悉将Interlocked.CompareExchange()
与普通对象一起使用。但是,我想将它与数组成员一起使用:
string[] myArray = new string[] { "A", "B", "C" };
string myStr = (string) Interlocked.CompareExchange(ref myArray[0], null, myArray[0]);
// myArray[0] == null
我该如何做到这一点?
答案 0 :(得分:1)
我正在使用它
string[] myArray = new string[] { "A", "B", "C" };
string myStr = Interlocked.CompareExchange(ref myArray[0], "F", myArray[0]);
foreach (var item in myArray)
{
Console.WriteLine(item.ToString());
}
这就是输出
F B C
一切都很好。
答案 1 :(得分:1)
我没有看到问题所在。您将数组中的第一个字符串设置为null。这就是为什么它是空的。这是你如何使用它:
string[] myArray = new string[] { "A", "B", "C" };
string myStr = (string) Interlocked.CompareExchange(ref myArray[0], ASDF /* VALUE */,
myArray[0]);
//myArray[0] == "ASDF" <- VALUE YOU SET