我最近加入了一個負責改進現有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