これはおそらく愚かな質問ですが、私はstackoverflowで答えを見つけることができませんでした。Winforms UIをバックグラウンドスレッドの結果から更新する
フォームを表示するためにスレッドを実行して結果を表示するWinformアプリケーションでボタンクリックイベントが発生しました。
スレッドが結果を計算したときにフォームUIを更新するにはどうすればよいですか?
private void btnRequestR2Approval_Click(object sender, EventArgs e)
{
if (User.IsLogged)
{
ValidationResults results = new ValidationResults();
results.Show();
Logger log = Logger.Instance();
Logger.NewLogAddedHandler messageDelegate = new Logger.NewLogAddedHandler(results.NewLogMessage);
if (!log.IsEventHandlerRegistered())
{
log.NewLogAdded += messageDelegate;
}
ThreadStart operation = new ThreadStart(ValidateAndSubmit);
Thread theThread = new Thread(operation);
theThread.Start();
}
else
{
MessageBox.Show("Please login");
}
}
あなたはどちらか 1.呼び出し元のスレッドをブロックするtheThread.Join()
を行うことができ、あなたに
ASPについて質問していますか。NET(Webテクノロジ)またはWinforms(Windowsネイティブテクノロジ)?あなたはWinFormsを使用しているように見えますが、タイトルとタグは別の方法を示唆しています。 – jrcs3
「終了しました」とはどういう意味ですか?スレッドが終了したこと、またはスレッドがあなたが知る必要があるものを計算したことを確認しますか? –
は実行を終了し、スレッドが何かを計算したことを意味し、別のスレッドで何かをリフレッシュする必要があります。 – Sergey