0

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

如果这是真的,任何人都可以提出一种克服它的方法吗?

提前致谢

4

3 回答 3

2

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

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

于 2013-05-16T16:22:46.397 回答
0

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

于 2013-05-16T15:31:09.803 回答
0

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

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

如果您无法做到这一点,您可以锁定对变量的访问

于 2013-05-16T15:53:21.317 回答