Чтобы вызвать автоматический режим, он запускается в Windows. планировщик задач как запланированное задание и передает аргумент командной строки («AUTO»), указывающий, что форма не нужна. В файле Program.cs, если аргументы командной строки содержат «AUTO», он передает это значение как логическое значение в строку «Application.Run», т. е. Application.Run(new SomeProgramNameHere(automated)); (где «automated» — логическое значение).
Когда я создаю экземпляр SomeProgramNameHere(), это выглядит так:
Код: Выделить всё
public SomeProgramNameHere(bool Automatic = false)
{
InitializeComponent();
AutoMode = Automatic;
Log = new Logging("SomeProgramNameHere");
WriteToLog("STARTUP1.0", "SomeProgramNameHere", "This process Launched.");
if (AutoMode)
{
MainProcess();
WriteToLog("STARTUP1.1", "SomeProgramNameHere", "Exit from automated process.");
Application.Exit();
WriteToLog("STARTUP1.2", "SomeProgramNameHere", "Why didn't I exit?.");
}
}
Сразу после MainProcess() изначально был метод Application.Exit(). линия. Когда я собрал его и поместил на сервер для тестирования, запланированное задание запустилось, нормально записалось в журнал, но на самом деле не завершилось. Просмотр планировщика задач показал, что он все еще работает, хотя и достиг последнего шага метода MainProcess().
Я добавил две дополнительные строки журнала, показанные выше. Это поражает их обоих. Итак, он возвращается из MainProcess(), попадает в строку журнала с надписью «STARTUP1.1», а затем попадает в строку с надписью «STARTUP1.2». Если он попадает в эту последнюю строку, он должен нажимать на Application.Exit(), но не завершается.
Если я добавляю метод загрузки формы и помещаю туда выход приложения (if (AutoMode) { Application.Exit(); } ), но я не понимаю, почему он вообще должен использовать метод загрузки формы.
Я запустил это своим руководителем и он тоже был в тупике.
Я предполагаю, что допускаю здесь какую-то идиотскую фундаментальную ошибку, но не уверен, какую именно.
Подробнее здесь: https://stackoverflow.com/questions/784 ... -it-should
Мобильная версия