所以我在这里遇到了问题。我在我的类中声明了一些变量,然后我尝试更改它然后用我的Windows表单线程读取它。该变量被读作它声明的初始值,没有任何东西可以改变它。例如:
我在Class1.cs中声明了值:
public static int TestVar = 51;
然后我将同一个类中的值更改为例如45:
TestVar = 45;
然后我从我的windows表单线程中读取变量,如下所示:
label1.Text = Class1.TestVar.ToString();
我的窗体中的结果是51而不是45.如果我将其声明为0或没有任何初始值,则无关紧要。它将保持为0而不是。
它已被声明的类将变量精细读取为45,不知何故另一个线程没有更新它。
使用以下命令运行Windows窗体:
public void RunThread()
{
Thread thread = new Thread(new ThreadStart(RunForm));
thread.Name = "NewForm";
thread.Start();
}
public void RunForm()
{
Application.Run(new NewForm());
}
任何帮助?
答案 0 :(得分:1)
如果您在多个线程中使用该变量,则必须声明它volatile
:
public static volatile int TestVar = 51;