Я сделал это для приложения, которое должно было обрабатывать файлы, когда они помещались в папку. Ваша лучшая ставка - это таймер (как предложено) с Console.ReadLine () в конце «main» без зацикливания.
Теперь, ваше беспокойство по поводу остановки приложения:
Я также сделал это через какой-то элементарный «файловый» монитор. Простое создание файла «quit.txt» в корневой папке приложения (либо моей программой, либо другим приложением, которое может запросить его остановку), приведет к закрытию приложения. Пол-код:
<do your timer thing here>
watcher = new FileSystemWatcher();
watcher.Path = <path of your application or other known accessible path>;
watcher.Changed += new FileSystemEventHandler(OnNewFile);
Console.ReadLine();
OnNewFile может выглядеть примерно так:
private static void OnNewFile(object source, FileSystemEventArgs e)
{
if(System.IO.Path.GetFileName(e.FullPath)).ToLower()=="quit.txt")
... remove current quit.txt
Environment.Exit(1);
}
Теперь вы упомянули, что это (или может быть) для мобильного приложения? Возможно, у вас нет наблюдателя за файловой системой. В этом случае, возможно, вам просто нужно «убить» процесс (вы сказали «В особых ситуациях (например, обновление приложения), мне нужно запросить приложение на остановку». Кто бы ни был «запрашивающий», чтобы остановить его, просто убить процесс)