从多进程到多线程

时间:2014-10-30 15:42:55

标签: c# .net multithreading

我最近加入了一个团队,负责加强现有的5年制课程。 它是在考虑多线程的情况下开发的,但没有正确实现。

该解决方案由多个Windows窗体程序组成(我们称之为屏幕1和屏幕2)。 屏幕1可以使用不同的参数多次启动屏幕2,但是将其作为Process启动,而不是ThreadsTasks或使用BackgroundWorker启动。

以下是它的完成方式:

public void RunProcess(Arguments Arguments,string ExcutableName)
{
    Process Prc = new Process();
    Prc.StartInfo.FileName = ExcutableName;
    Prc.StartInfo.Arguments = Arguments.GetProcessArguments();
    Prc.Start();
    _ListProcess.Add(Prc);
}

当屏幕1关闭时,进程将保留在内存中并被终止。

我想以更清洁的方式重构这一点,采用“单一流程”方法。你会提出什么建议?

1 个答案:

答案 0 :(得分:2)

看起来你需要将Screen 2的逻辑移植到Screen 1项目中,然后用线程代码替换“Process”逻辑。