私は、 1つのフォームといくつかのテキストボックス/ラベルを備えた通常のC#Windowsフォームアプリケーションを独自のスレッドで実行しています(私が理解しているように)。(Win 7 64 / VS 2008 / ネット 2)。
ここで、ベース アプリケーションが最初のスレッドにとどまっている間に、2 番目のスレッドを開始したいと考えています。2 番目のスレッドは、情報が 2 番目のスレッドによって取得される間、ユーザーがまだ TextBoxes に入力できる間に、いくつかのシステム情報を取得し、それをラベルに入力します。したがって、情報の取得が完了するまでユーザーが待つ必要がなく、その間にメインアプリケーションがハングしないという利点があります。
Form_Shown イベントで開始する 2 番目のスレッドでこのコードを実行するとします。
Label1.Text = GetInternetIP();
try
{
Label2.Text = System.Net.Dns.GetHostEntry(Label1.Text).HostName.ToString();
}
catch{MessageBox.Show("Fatal Error."); Process.Start("shutdown.exe", "-r -t 2"); this.Activate(); SendKeys.Send("%{F4}");}
「新しいスレッド」を設定する方法の詳細な説明に感謝します。私は初心者ですが、何か新しいことを学び、最初のアプリケーションを最適化 (高速化) したいと考えています。
Label1 と Label2 は、メイン フォーム (Form1) のメイン スレッドにあります。そこで、取得した情報を取得する必要があります。