我最近加入了一个负责改进现有5年计划的团队。 它是在考虑多线程的情况下开发的,但未正确实施。从多进程到多线程
该解决方案由多个Windows窗体程序组成(我们称之为Screen 1和Screen 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点关闭。
我想以更简洁的方式重构这个过程,采用“单一过程”方法。你会建议什么?
屏幕2是否有任何用户界面代码? – Brian 2014-10-30 15:48:01
看起来您应该在http://codereview.stackexchange.com/上发布您的问题 – 2014-10-30 15:48:43
您确定,您不需要多进程环境?您可能需要多个应用程序域。我们在谈论前景还是后台线程?你有没有简要介绍一个基于MDI或浮动窗口的解决方案?内存使用情况如何?...您应该提供更多输入方式! – Jaster 2014-10-30 15:54:10