私は通常の方法でフォームを開始します。
Application.Run(new MainForm());
一定時間開いてから閉じてほしい。私は以下を試しましたが、役に立ちませんでした:
(1)Mainメソッド(Application.Run()ステートメントの場合)に、次のAFTER Application.Run()を入力します。
while (DateTime.Now < Configs.EndService) { }
結果:ヒットすることはありません。
(2)Application.Run()の前に新しいバックグラウンドスレッドを開始します。
var thread = new Thread(() => EndServiceThread()) { IsBackground = true };
thread.Start();
EndServiceThreadは次のとおりです。
public static void EndServiceThread()
{
while (DateTime.Now < Configs.EndService) { }
Environment.Exit(0);
}
結果:vshost32.exeがクラッシュの動作を停止しました。
(3)MainForm Tickイベントの場合:
if (DateTime.Now > Configs.EndService)
{
this.Close();
//Environment.Exit(0);
}
結果:vshost32.exeがクラッシュの動作を停止しました。
私の目標を達成するための適切な方法は何ですか?繰り返しになりますが、フォームを起動し、特定の時間(Configs.EndService)まで開いて実行してから、閉じます。
ありがとう、ベン。