我最近加入了一个团队,负责加强现有的5年制课程。 它是在考虑多线程的情况下开发的,但没有正确实现。
该解决方案由多个Windows窗体程序组成(我们称之为屏幕1和屏幕2)。
屏幕1可以使用不同的参数多次启动屏幕2,但是将其作为Process
启动,而不是Threads
,Tasks
或使用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关闭时,进程将保留在内存中并被终止。
我想以更清洁的方式重构这一点,采用“单一流程”方法。你会提出什么建议?
答案 0 :(得分:2)
看起来你需要将Screen 2的逻辑移植到Screen 1项目中,然后用线程代码替换“Process”逻辑。