2014-10-30 5 views
0

Недавно я присоединился к команде, ответственной за улучшение существующей 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 закрывается.

Я хотел бы реорганизовать это более чистым способом, основываясь на «одном процессе». Что бы вы посоветовали?

+0

Есть ли у экрана 2 код пользовательского интерфейса? – Brian

+0

Похоже, что вы должны опубликовать свой вопрос по адресу http://codereview.stackexchange.com/ не здесь –

+0

R u sure, вам не нужно многопроцессорное envoirement ?. Вам может потребоваться несколько доменов приложений. Мы говорим о фоновых или фоновых потоках? Вы изучили решение на основе MDI или на основе плавающего окна? Как насчет использования памяти? ... Вы должны предоставить путь больше ввода! – Jaster

ответ

2

Похоже, вам нужно подключить логику экрана 2 к экрану 1, а затем заменить логику «Процесс» на резьбовой код.

+0

Я не думаю, что это можно сделать легко. Эти программы имеют разные точки входа. Они могут запускаться на экране 1 или сами по себе. – Keysharpener

Смежные вопросы