У меня есть проект, который показывает интерфейс, когда не передаются правильные аргументы командной строки. Это простая утилита, созданная для динамического обновления обоев рабочего стола. Когда это будет сделано с его обновлением, я вызываюУтилизация приложения .NET перед Application.Run завершена
this.Dispose();
но это вызывает проблему, если переданы аргументы командной строки. Форма фактически заканчивает получение вызова метода Dispose до того, как он будет показан пользователю. Результатом является неприятная ошибка, говорящая о том, что программа не запускалась должным образом, даже если она выполнялась именно так, как я хотел.
Я могу уважать то, что я не очень логично отношусь к этому, но у меня нет ни малейшего понятия, как посмотреть на решение. Есть ли другой способ вызвать метод Dispose() до того, как приложение загрузилось без возникновения ошибки?
Дополнительная информация:
Выше доказательно не ясно, и я извиняюсь за это. Моя программа запускается из файла Program.cs:
Application.Run(new MainForm());
В конструкторе я проверяю, если аргументы командной строки существует, и если так называют процедуру под названием SilentRun. Этот частный метод проверяет, являются ли аргументы действительными, и если это передаёт их методу для совершения действий, называемых BrandSystem().
После BrandSystem() завершена, с его работой, последнее утверждение
this.Dispose();
как нет ничего другого приложения на самом деле делать. Этот же метод вызывается, если аргументы команды не передаются, и пользователь использует графический интерфейс для применения изменений. По сути, как только процесс обновления обоев завершен, я хочу, чтобы приложение прекратилось.
Причина аргументов командной строки заключается в том, что эта утилита сортировок может быть добавлена в установочный пакет и тихо работать в фоновом режиме. Мой процесс установки не имеет встроенной возможности обновлять обои, и для меня это утилита с двумя птицами.
Проблема возникает, когда программа запускается в режиме командной строки и вызывает Dispose перед тем, как все загрузится. Я открыт для предложений, даже если они докажут, что моя логика совершенно необоснованна.
Очень неясно, ваш фрагмент бесполезен. Зачем распоряжаться чем угодно, когда ваша программа заканчивается? –
@ Hans Passant - см. Обновление для разъяснений. Спасибо, что я слишком расплывчата. – Jeff
Вы только что добавили фрагменты кода, который существует в * любой * программе. –