在C#中考虑此代码: 私人int _backingfield; public int somenumber => volatile.read(ref _backingfield); public void test_1() { var someNumber = volatile.Read(ref _backingfield); ...

问题描述 投票:0回答:1
我知道,为了提高性能,现代CPU在引擎盖下进行了许多优化。这些优化之一可能包括将分配移至

someNumber

如果没有使用
// do A
如果使用

Volatile.Read()

。
但是,我的问题是
Test_1
Test_2
方法是否相同。 
Test_2

的挥发性读数嵌套在getter中的事实是否使挥发性读取的好处无效?

Test_1
是相同的。在这两种情况下,
Test_2
都是读

var someNumber
c# volatile getter instruction-reordering
1个回答
0
投票
volatile

)。直接或间接调用

// do A
都没关系。记忆障碍的任何一种方式都放置。
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.