ここで問題があります。クラスでいくつかの変数を宣言し、それを変更してから、Windows フォーム スレッドで読み取ります。変数は、宣言された初期値として読み取られており、何も変更できません。例:
Class1.cs で値を宣言します。
public static int TestVar = 51;
次に、後で同じクラスの値をたとえば 45 に変更します。
TestVar = 45;
次に、次のように Windows フォーム スレッドから変数を読み取ります。
label1.Text = Class1.TestVar.ToString();
そして、私の Windows フォームの結果は 45 ではなく 51 です。それを 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());
}
何か助けはありますか?