Для * сильный текст * приложение-наблюдатель.
Вы должны создать таймер в службе Windows и кодировать что-то вроде этого в событии отметки времени:
Process[] procs = Process.GetProcessesByName("you app name");
if (procs.Length == 0)
Process.Start("your app filename");
если вы действительно не можете ничего сделать с проблемой сбоя, я бы порекомендовал попробовать поймать вместо наблюдателя. (Не забудьте повторно обработать обработанные основные исключения)
[STAThread]
static void Main()
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
catch(Exception ex)
{
//log the exception here
Application.Restart();
}
}