gpt4 book ai didi

c# - 使用 volatile 关键字和 lock 语句

转载 作者:太空宇宙 更新时间:2023-11-03 22:06:51 25 4
gpt4 key购买 nike

我在应用程序中收到“对易变字段的引用不会被视为易变”警告。我明白为什么。

作为一个简单的例子,即使我仍然会收到警告,下面的代码是否会使问题线程安全?

private volatile int myVal = 10;
private int myNonVolatileNumber = 50;
private static readonly object lockObject = new object();

private void ChangeValue(ref int Value)
{
lock (lockObject)
{
Value = 0;
}
}

private void MyMethod()
{
ChangeValue(ref myVal); //Warning here
ChangeValue(ref myNonVolatileNumber); //no warning
}

最佳答案

锁定会在两侧强制设置内存屏障,所以是的,您的示例是线程安全的。

关于c# - 使用 volatile 关键字和 lock 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8140019/

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