0

以下のコードは、100* 1000 (ミリ秒) ごとに刻みを付けて登録用のポップアップ メッセージを表示するタイマーを示しています。

この答えをGoogleとstackoverflowで検索しましたが、ハングすることなくアプリケーションを動作させるための正しい答えを見つけることができませんでした。

        private System.Timers.Timer register_Timer = new System.Timers.Timer();

        register_Timer.Interval = (100 * 1000);
        register_Timer.Elapsed += new ElapsedEventHandler(register_Timer_Tick);     
        register_Timer.SynchronizingObject = this;            
        register_Timer.AutoReset = true;       
        register_Timer.Enabled = true;

        System.GC.KeepAlive(register_Timer);

        private void register_Timer_Tick(object sender, EventArgs e)
              {
                //Pop up to show register message
              }
4

2 に答える 2

1

ポップアップを実行しているため、アプリケーションがハングします (MessageBoxまたは他のモーダル ダイアログ ボックスを想定しています)。もちろん、アプリケーションはハングアップします。UI スレッドにモーダル ダイアログを配置しています。

問題はタイマーではなく、アプリケーションの設計にあります。

于 2013-08-09T14:12:14.970 に答える