0

プロセスの時間制限を設定することは可能ですか?これはマルチスレッドを使用して実行できることを理解しています。たとえば、プロセスを実行する1つのスレッドと、一定時間後にプロセスを強制終了する別のスレッドを使用できますが、もっと簡単な解決策はありませんか?

4

4 に答える 4

1

いいえ、そのようなソリューションは、制限時間が経過した後にプロセスを停止する方法を正確に知らないためです。プロセスを完全に強制終了することは潜在的に危険なことであるため、一般的な場合、プロセスは正常なシャットダウンを実現するために協力する必要があります。

タイマーを設定して、タイマーが経過したことを示す条件をメインループでチェックすることは実際にはそれほど難しくありません。

于 2012-08-23T11:03:34.063 に答える
1

プロセスを生成し、一定の時間待機してから、それを強制終了することができます。

var proc = Process.Start("myproc.exe");
bool graceful = proc.WaitForExit(10000);  //Wait 10 secs.
if (!graceful)
{
    proc.Kill();
}
于 2012-08-23T11:37:54.233 に答える
0

実行中のスレッドが定期的に自分自身をチェックして正常に終了できない限り、いいえ。ほとんどの場合、実行中のスレッドを信頼してこれを行うことはできません。

于 2012-08-23T11:05:29.610 に答える
0

プロセスを開始する場合は、schtasks/createを使用してスケジュールすることもできます。

それはあなたがほとんど無料で必要なものをあなたに与えるでしょう(あなたのスタートアッププロセスはもう少し複雑なので、無料のランチはありません)

SCHTASKS /Create /SC DAILY /TN gaming /TR c:\freecell /ST 12:00  /ET 14:00 /K

schtasksに関するナレッジベースの記事

于 2012-08-23T11:12:02.217 に答える