Ist die Variablenzuordnung und das Lesen der atomaren Operation?

Ich konnte in den Dokumentationen keinen Verweis darauf finden ...

Weist man einer Double-Operation (oder einem anderen einfachen Typ, einschließlich Boolescher Operationen) eine atomare Operation zu, die aus der Perspektive von Threads betrachtet wird?

double value = 0;

public void First() {
 while(true) {
  value = (new Random()).NextDouble();
 }
}

public void Second() {
 while(true) {
  Console.WriteLine(value);
 }
}

In diesem Codebeispiel wird die erste Methode in einem Thread und die zweite in einem anderen Thread aufgerufen. Kann die zweite Methode einen fehlerhaften Wert erhalten, wenn sie während der Zuweisung zur Variablen in einem anderen Thread ausgeführt wird?

Es ist mir egal, ob ich den alten Wert erhalte, es ist nur wichtig, einen gültigen Wert zu erhalten (nicht einen, bei dem 2 von 8 Bytes gesetzt sind). Ich weiß, dass es eine dumme Frage ist, aber ich möchte sicher sein, weil ich nicht weiß, wie CLR die Variablen tatsächlich setzt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage