3

ユーザーがキーを押して停止するまで実行する必要があるスケジュールチェッカーがあります。

これを行うことについての私の考えは次のとおりです。

  1. ユーザーがプロセスを開始します
  2. プロセスは10秒ごとに実行されます
  3. プロセスが実行されていないときは、Console.ReadLine(); ユーザーに「q」を押してプロセスを停止するオプションを提供します

私のアプローチは、ユーザーがプロセスを停止できるようになるまでにプロセスが完了するまでにどれだけ時間がかかるかを待たなければならないことを除いて、うまく機能します。ユーザー入力を取得しながらプロセスを同時に実行する方法はありますか?

4

2 に答える 2

3

別のスレッドでスケジュール作業を行うプロセスを実行できます。そうすれば、メインスレッドは常にユーザー入力に応答する可能性があります。一方、実行中に他のプロセスを強制終了できない場合、最終結果に違いはありません。そのプロセスが完了するまで、アプリケーション全体を停止することはできません。ただし、他のプロセスをいつでも強制終了できる場合は、複数(2)のスレッドがおそらく適切に機能します。

于 2010-05-19T14:23:22.183 に答える
3

たぶん、BackgroundWorkerが役に立ちます。

キャンセルも使用する例を次に示しますMSDN
にもあります。

于 2010-05-19T14:37:41.720 に答える