1

問題はいくつかのプロセスを作成し、それらを使用して開始しprocess.start() 、これらのプロセスを状態間で移動する必要があります。しかし、問題は私が思うに使えないということですThread.Suspend()

では、これらのプロセスを一時停止してから再開するにはどうすればよいでしょうか?

private void button1_Click(object sender, EventArgs e)
{
    var process1 = new Process();
    var process2 = new Process();
    var process3 = new Process();
    process1.StartInfo.FileName = "proc1";
    process2.StartInfo.FileName = "proc2";
    process3.StartInfo.FileName = "proc3";
    process1.Start();
    process2.Start();
    process3.Start();
}

これら 3 つのプロセスは、異なるファイルの読み取りと書き込みを行うために作成した C# プログラム (.exe) です。

4

1 に答える 1

3

プロセスの一時停止と再開について考えるべきではありません。これは、Windows プロセスを管理する方法ではないためです。理論的にはすべてのスレッドを中断できますが、なぜでしょうか? スレッドに実行する作業がない場合、実行はスケジュールされません。同様に、プロセスは、作業がない場合、状態を表すためにメモリを使用するだけで、CPU を消費しません。

標準的なプロセス通信アプローチまたはプロセス管理を優先して、アーキテクチャを再考してください。たとえば、Windows ジョブ、プロセス間通信を備えた WCF、データベース対話などがあります。

于 2013-01-12T11:57:26.660 に答える