メイン フォーム (UI) と並行して実行されるスレッドがあります。(今のところ) 行うことは、毎秒カウンターをインクリメントすることだけです。Windows フォームでラベルを使用してカウンターの値を表示したいと考えています。それは可能ですか?次のコードを試すと、ShowValue メソッドでコンパイル エラーが発生します。バックグラウンド スレッドから呼び出すことができるように、ShowValue を「静的」と宣言する必要があります。でもそうすると「これ」が使えない。ShowValue Form1 のラベルにアクセスします。これはこれを行う正しい方法ですか?どんなヒントでも大歓迎です、ありがとう!
private void count_secs()
{
while (!stopThread)
{
if (stopThread)
{
break;
}
num2++; // increment counter
Form1.ShowValue(num2); // display the counter value in the main Form
try
{
Thread.Sleep(1000); // wait 1 sec.
}
catch (ThreadInterruptedException)
{
if (stopThread)
{
break;
}
}
}
}
次に、Form1 クラスには次のものがあります。
public static void ShowValue(int num)
{
this.label7.Text = num.ToString();
// compiler error here: "Keyword 'this' is not valid in a static method.
}