volatile是否能保證原子性?
c#中并不是所有的數據類型都能標記為volatile保持多線程訪問的原子性,例如Double和Long就不能標記為volatile,因為不能保證對這些類型的字段的讀和寫是原子的。所以保護對這些類型字段的多線程訪問,使用互鎖類成員或使用LOCK語句保護訪問。另外volatile只能應用于類或結構的字段。局部變量不能聲明為volatile變量。
下面是微軟的幫助鏈接你可以參考下
https://docs.microsoft.com/en-us/dotnet/csharp/