Поскольку только ссылочные типы и несколько примитивов (включая float, но не double, я не уверен, почему, я рад услышать, почему) могут быть объявлены как volatile, если я оберну двойное значение в класс, а затем объявлю его как volatile (как показано ниже), будет ли свойство double быть потокобезопасным для чтения и записи, как и любое другое volatile, или я все еще должен смотреть на блокировку?
public class MyThreadedClass
{
volatile VolatileDouble voldub;
}
public class VolatileDouble
{
public double Double { get; set; }
}