静态变量的并发性

时间:2013-05-16 15:26:15

标签: c# concurrency static-variables

也许为时已晚,但为了winforms应用程序中的全局变量,我有一个静态类。现在,我意识到这可能会导致问题。问题是:“使用我的应用程序中的静态类变量,它会在多用户环境中运行时引发并发问题吗?”。

如果这是真的,有人可以建议一种克服它的方法吗?

先谢谢

3 个答案:

答案 0 :(得分:2)

简短回答:。多用户环境意味着多个用户正在使用您的程序,但每个用户都在启动一个新实例。您的静态变量不会在多个进程之间共享,因此只有在程序包含多个线程时才会出现问题。

然而,静态全局变量不是“好东西”(tm)。你应该避免使用它们,因为一旦你 在你的进程中运行了多个线程,它们就会导致问题。

答案 1 :(得分:0)

简短回答: 是, 当您尝试修改变量时,只需使用lock来防止并发问题。

答案 2 :(得分:0)

首先,全局变量是一个坏主意,你应该尽可能避免使用全局变量。

如果多个线程正在读取和写入相同的变量,则会出现并发问题,是的。为避免这种情况,请在单个线程上读/写全局变量。

如果您无法做到这一点,可以lock access to the variables