我需要检查TPL程序中的变量是否已更改。例如,如果线程更改了易失性字符串变量,则其他线程不需要更改它。由于变量的类型是易失性的,其他线程可以使用它。我该怎么办?
答案 0 :(得分:3)
volatile
可能不会按照您的想法行事。不要使用它,因为它不能满足你的需要。bool wasChanged = false
并在写入变量时将其设置为true。请记住为此使用正确的同步(可能是lock
)。答案 1 :(得分:2)
在给定变量类型限制的情况下,检查共享变量与其预期值的确定方法是使用Interlocked操作。