У меня есть небольшое приложение, которое клиент использует для обновления некоторых данных вручную. Это очень просто; при загрузке заполняет список компаний, из которых пользователь может выбрать и нажать кнопку, чтобы обновить данные в другой системе. Клиент хочет иметь возможность запускать те же функции из командной строки, поэтому я добавил фонового работника. Когда приложение запускается, я проверяю конкретный аргумент и, если он найден, я запускаю работника. Как только работник завершает работу, я вызываю Close ();
Кажется, что все работает нормально (данные обновляются, как ожидается, и приложение закрывается), но когда я проверяю диспетчер задач, приложение все еще работает.
Мои вопросы:
- Какую вещь / вещи я должен искать, чтобы найти причину, по которой приложение все еще работает?
- Есть ли лучший способ сделать это?
Вот пример кода:
public MainForm()
{
InitializeComponent();
var args = Environment.GetCommandLineArgs();
Array.ForEach(args, x => x.ToLower());
if (args.Contains("u"))
backgroundWorker.RunWorkerAsync();
}
private void BackgroundWorkerDoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
//call to web service to update data
}
private void BackgroundWorkerRunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
{
Close();
}