Преобразовать приложение WinForm в командную строку? - PullRequest
0 голосов
/ 04 мая 2018

Существует очень старое приложение 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 #.

1 Ответ

0 голосов
/ 04 мая 2018

Не думаю, что вам нужно звонить f.Close(), если не был вызван f.Show() (при условии, что он наследуется от System.Windows.Form). Однако вы можете сделать это:

using(var f = new MyApp(.....))
{
    f.SomeButton_Click(f, ....);
    f.AnotherButton_Click(f, ....);
    ....
    f.btnOK_Click(f, ...);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...