Gilt volatile.read () immer noch, wenn es in einem Getter verschachtelt ist?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Gilt volatile.read () immer noch, wenn es in einem Getter verschachtelt ist?

Post by Anonymous »

Betrachten Sie diesen Code in C#: < /p>

Code: Select all

private int _backingField;

public int SomeNumber => Volatile.Read(ref _backingField);

public void Test_1()
{
var someNumber = Volatile.Read(ref _backingField);

// do A

if (someNumber == 5)
{
// do B
}
}

public void Test_2()
{
var someNumber = SomeNumber;

// do A

if (someNumber == 5)
{
// do B
}
}
< /code>
Ich bin mir bewusst, dass moderne CPUs, um die Leistung zu verbessern, viele Optimierungen unter der Motorhaube durchführen. Eine dieser Optimierungen könnte das Verschieben der Zuordnung in Somenumber 
nach der // do einer -Zeile verwendet, wenn nein volatile.read () verwendet wird.
Meine Frage ist jedoch, ob die Methoden test_1 und test_2 identisch sind. Ist die Tatsache, dass die flüchtige Lektüre von test_2 in einem Getter verschachtelt ist, die Vorteile des flüchtigen Lesens?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post