Существует очень старое приложение Winform (с большим количеством логики домена, записанной в обработчиках событий контроллеров), и мне нужно будет также запустить ее в командном файле. Поэтому я добавил аргумент -gui
, включил все всплывающие сообщения в журнал при запуске без графического интерфейса и изменил процесс запуска на
if (gui) // Interactive mode
{
Application.Run(new MyApp(....));
}
else // Running in batch mode
{
var f = new MyApp(.....);
f.SomeButton_Click(f, ....);
f.AnotherButton_Click(f, ....);
....
f.btnOK_Click(f, ...);
// f.Close(); // Should it be called?
}
Должен ли f.Close();
или любой другой метод вызываться перед выходом? Я обнаружил, что некоторые процессы зависают в системе и не могут быть убиты после запуска из другого приложения C #.