если программа Windows Mobile потерпела крах, как сделать сброс к этой программе? - PullRequest
1 голос
/ 10 августа 2009

если моя C # Windows Mobile программа потерпела крах, как сделать сброс к этой программе?

(автоматический - без вмешательства пользователя)

Спасибо заранее

Ответы [ 3 ]

2 голосов
/ 10 августа 2009

Вам понадобится другое приложение, которое отслеживает вашу программу, и, как только она обнаружит, что она аварийно завершилась, оно сможет перезапустить это приложение.

1 голос
/ 11 августа 2009

Я вижу 2 возможных решения 1) способ, предложенный Tomlog, при наличии двух мониторов процессов. (Плохой путь)
2) Сделайте так, чтобы ваше приложение знало, что оно аварийно завершает работу, и затем сделайте что-нибудь (Вы можете, вероятно, не перезапустить его, но, возможно, запустить другое приложение, которое сделает это) *

Я бы порекомендовал использовать версию 2 просто потому, что мобильные телефоны имеют ограниченные ресурсы, и порождение программы, которая ничего не делает, кроме проверки, работает ли другая, кажется плохой практикой, особенно на телефоне.

[MTAThread]
static void Main()
{
    AppDomain CurrentDomain = AppDomain.CurrentDomain;
    CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(OnUnhandledException);

    Application.Run(new MainWindow());
}

static void OnUnhandledException(Object sender, UnhandledExceptionEventArgs e)
{
    Exception ex = (Exception)e.ExceptionObject;

}
0 голосов
/ 27 августа 2009

Я согласен с EKS - обрабатывать критические исключения и повторно вызывать приложение, когда возникает неисправимая ситуация - будьте осторожны с бесконечными циклами повторного появления!

...