Недавно я присоединился к команде, ответственной за улучшение существующей 5-летней программы. Он был разработан с многопоточным разумом, но неправильно реализован.От многопроцессорного до многопоточности
Решение состоит из нескольких программ Windows Forms (назовем их Экран 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 закрывается.
Я хотел бы реорганизовать это более чистым способом, основываясь на «одном процессе». Что бы вы посоветовали?
Есть ли у экрана 2 код пользовательского интерфейса? – Brian
Похоже, что вы должны опубликовать свой вопрос по адресу http://codereview.stackexchange.com/ не здесь –
R u sure, вам не нужно многопроцессорное envoirement ?. Вам может потребоваться несколько доменов приложений. Мы говорим о фоновых или фоновых потоках? Вы изучили решение на основе MDI или на основе плавающего окна? Как насчет использования памяти? ... Вы должны предоставить путь больше ввода! – Jaster