所以我在这里有一个问题。我在我的类中声明了一些变量,然后尝试更改它,然后使用我的窗体窗体线程读取它。该变量正在被读取为它所声明的初始值,并且没有任何东西可以改变它。例如:由另一个线程读取变量 - 变量不会改变
我声明在我的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());
}
任何帮助吗?
你能对这个问题再加上工作样本? – Nenad
您需要发布更多代码。我将把一美元放在“你也有一个名为TestVar的局部变量”上。 –
对不起,这个问题是一个更大的应用程序的一部分。不,我没有局部变量。我试着用全新的变量来开始。有趣的是,当我使用声明变量的线程显示窗体窗体时,它工作正常。当我从另一个不同的线程启动它时 - 它回到初始状态。 – FrozenHaxor