你如何暂停一个被叫进程(内部细节)

时间:2013-01-12 11:27:04

标签: c# .net

问题是在多个过程中创建的,并使用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),用于读写不同的文件。

1 个答案:

答案 0 :(得分:3)

您不应该考虑暂停和恢复流程。因为这不是您应该如何管理Windows进程。理论上你可以暂停所有线程,但为什么呢?如果某个线程没有工作要做,则不会安排执行。同样,一个进程,如果它没有工作 - 它只是使用一些内存来表示状态,但它不消耗任何CPU。

重新思考您的架构,转而采用标准流程沟通方法或流程管理。例如,有Windows作业,带有进程间通信的WCF,数据库交互。