c#中使用volatile需要注意以下两点:
1、使用场景,用来修饰类级别和结构级别的,被多个线程修改的,不适用lock锁定的变量,告诉编译器不优化该变量,
这样cpu的寄存器不会缓存该变量的值,保证每个线程取值都是最新的,而不是cpu缓存的值
2、不能将局部变量声明为 volatile
c#中使用volatile需要注意以下两点:
1、使用场景,用来修饰类级别和结构级别的,被多个线程修改的,不适用lock锁定的变量,告诉编译器不优化该变量,
这样cpu的寄存器不会缓存该变量的值,保证每个线程取值都是最新的,而不是cpu缓存的值
2、不能将局部变量声明为 volatile