Domanda

Ho letto molti forum e link come:

Come faccio a riavviare il mio C # WinForm applicazione?

, ma tutto questo sono per Windows non per cellulari. Come posso riavviare la mia domanda cellulare quando prendo un'eccezione non gestita. Ora app è chiuso quando mi cattura un'eccezione non gestita, ma io non voglio per chiuderla così voglio riavviarlo.

Questo non funziona:

ProcessStartInfo s = new ProcessStartInfo();
            s.FileName = Assembly.GetExecutingAssembly().GetName().CodeBase;
            s.UseShellExecute = false;
            Process.Start(s);

io sono finestre uisng Mobile 6.1 e CF 3.5

È stato utile?

Soluzione

WinMo ha un meccanismo cotto in per evitare più istanze di un app da corsa, in modo da chiamare te stesso con la classe Process semplicemente lanciare un'istanza che i termina shell. Bisogna intorno a quello , P / Invoke CeRunAppAtTime o creare un processo separato che watchdog rende sicuro il processo di applicazione è sempre in esecuzione, il lancio di una nuova istanza se rileva è mai andato .. sappiate che CeRunAppAtTime non è possibile pianificare un app per meno di 11 secondi nel futuro, quindi ci sarà un ritardo.

Altri suggerimenti

Non dovresti. L'approccio migliore è quello di evitare che tale eccezione con fissare il bug che causa in primo luogo.

Ma se davvero, davvero, davvero bisogno di riavviare l'applicazione per qualsiasi altro motivo che si blocca, poi si può avviare un altro processo in background insieme con l'applicazione che gli orologi, se l'applicazione è ancora in esecuzione e inizia con Process.Start() nuovo se non lo fa.

(Se l'applicazione è impostato per eseguire automaticamente il dispositivo e supportato dal dispositivo a cui, -che non è molto probabile dal momento che è una cosa di Windows CE, ma perché non- si può anche creano timer watchdog per riavviare l'intero dispositivo, se necessario.)

Ma il riavvio di un'applicazione per tutto il tempo (diciamo una volta al giorno) rovina l'esperienza dell'utente e anche la fiducia dell'utente. Così si dovrebbe risolvere invece l'eccezione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top