Processo Waitforexit C 41 Pellicola
Come permanente è WaitForExit (). Voglio dire, c'è qualcosa di una alternativa può fare per rompere l'attesa altrimenti correrò il mio thread in una funzione separata, e controllarlo da variabili globali. La ragione - un filo CMD. EXE, con un'applicazione console in esecuzione, che abbiamo bisogno di cancellare fuori prima il filo conduttore il suo corso. Ecco quello che abbiamo: ProcessStartInfo psi nuova ProcessStartInfo (quotCMD. EXEquot, query) psi. UseShellExecute useShellExec psi. RedirectStandardOutput stdout psi. CreateNoWindow noWindow hbProc nuovo processo () hbProc Process. Start (psi) hbProc. WaitForExit () Beh, si potrebbe uso: mentre (hbProc. WaitForExit (someTimeout)) se (ShouldCancel) pausa il set 19, 5:15, quotMarc Gravellquot ltmarc. grav. gt ha scritto: gt Beh, si potrebbe usare: gt gt mentre (hbProc. WaitForExit (someTimeout)) gt se (ShouldCancel) rompere gt gt gt gt Marc (nota, non vi è alcun motivo per chiamare sia il nuovo processo () e il processo. Start (psi) o si può usare: hbProc nuovo processo () hbProc. EnableRaisingEvents vero hbProc. Exited nuova EventHandler (functionToCallAfterProcesit) hbProc. StartInfo psi hbProc. Start () altro thread - sulla desidera annullare evento: hbProc - new EventHandler ( functionToCallAfterProcesit) In entrambi i casi, basta essere consapevoli della condizione di potenziale gara tra il processo in uscita e il desiderio di annullare l'attesa il set 19, 4:11, Alistair George ltnon xtra. co. nzgt ha scritto:.. gt Come permanente è WaitForExit () voglio dire c'è qualcosa un'alternativa GT si può fare per rompere l'attesa altrimenti correrò il mio GT filo in una funzione separata, e controllarlo da variabili globali gt ragione -.. un filo CMD. EXE, con una console applicazione in esecuzione, che abbiamo Gt bisogno di cancellare fuori prima il filo conduttore il suo corso. gt Ecco ciò che abbiamo: gt ProcessStartInfo psi nuova GT ProcessStartInfo (quotCMD. EXEquot, query) gt psi. UseShellExecute useShellExec gt psi. RedirectStandardOutput stdout gt psi. CreateNoWindow noWindow gt hbProc nuovo processo () gt hbProc Process. Start (psi) gt hbProc. WaitForExit () gt gt Grazie, Alistair gt. È possibile uccidere il WaitForExit thread in esecuzione () o utilizzare l'overload che consente di specificare un timeout WaitForExit bool (int msToWait). Se si esegue in un thread separato e uccidere si sta andando ad ottenere un'eccezione interrotta. Si consiglia di assicurarsi che il processo è stato avviato non sta ancora in esecuzione (se lo è, ucciderlo). gt è possibile uccidere il WaitForExit thread in esecuzione () oppure utilizzare il sovraccarico di GT che permette di specificare un timeout WaitForExit bool (int gt msToWait). Se si esegue in un thread separato e uccide sei gt intenzione di ottenere un'eccezione interrotta. Si consiglia di assicurarsi che il processo di GT è stato avviato non sta ancora in esecuzione (se lo è, ucciderlo). ragazzi gt Grazie con i suggerimenti che sono utili. Vi consiglierà quale opzione ha funzionato meglio. Al. Copyright copia 2005-2016, TechTalkz. Tutti i diritti di lettura Reserved. Lets quello che dice MSDN su di esso: The WaitForExit) () () sovraccarico (è usato per fare la corrente di attesa filo fino a quando il processo associato termina. Questo metodo indica al componente del processo di aspettare una quantità infinita di tempo per il processo per uscire. Ciò può causare un'applicazione per bloccarsi. Ad esempio, se si chiama CloseMainWindow per un processo che ha un interfaccia utente, la richiesta al sistema operativo per terminare il processo associato potrebbe non essere gestita se il processo viene scritto mai entrare nel suo ciclo di messaggi. Questo sovraccarico assicura che tutta l'elaborazione è stata completata, compresa la gestione di eventi asincroni per standard output reindirizzato. Si dovrebbe usare questo sovraccarico dopo una chiamata al sovraccarico WaitForExit (Int32) quando l'uscita standard è stato reindirizzato a gestori di eventi asincroni. Questo è, naturalmente, per. Cosa ti fa pensare che non aspetta il processo di nota per finire Quali sono i segni di che cosa è la prova Venerdì 20 Febbraio 2009 20:13 Non sono sicuro se questo è cambiato di recente, ma di nuovo nelle applicazioni al giorno sulla finestra mobili mai veramente chiusa quando si colpisce la X per chiudere loro, avrebbero solo ridurre al minimo e mantenere in esecuzione in background (questo non è stato un errore, è stata una caratteristica, dal momento che la prossima volta che si avvia l'applicazione sarebbe iniziato veramente veloce, yah lo so, folle ma vero), in modo che potrebbe essere il motivo per cui WaitForExit è forse comporta in modo strano e di attesa per l'avvio dell'applicazione, invece di uscire. ma poi di nuovo è solo speculazione sulla base di knowlegde delle antiche versioni di Windows Mobile. Venerdì 20 Febbraio 2009 23:03 Id piace urtare questa domanda in su. Im su Windows Mobile 6 Standard e Im cercando di generare una istanza del browser. Id piace aspettare fino a quando l'utente chiude il browser. Ma WaitForExit ritorna estremamente veloce. Ecco il codice: p nuovo Process () p. StartInfo. Arguments quotexample-sitequot p. StartInfo. Verb quotOpenquot p. StartInfo. UseShellExecute falso p. StartInfo. FileName quotIExplore. exequot p. Start) p. WaitForExit () MessageBox (.Show (quotNow il browser dovrebbe essere closedquot) Quale dovrebbe essere il modo giusto per ottenere i resuts attesi lunedì, giugno 08, 2009 22:45 Dove simbolo è. simbolo. AlexB Martedì 9 Giugno 2009 21:58 Im vedere lo stesso problema, ma su XP. Credo che la prova può essere visto in qualsiasi debugger (come sto vedendo), o in qualsiasi applicazione di console (non necessariamente sul cellulare) Mercoledì 2 Settembre 2009 20:35 Solo che tu non poi ottenere un oggetto processo che è possibile uso. Se si tenta myProc fioco come nuovo processo () myProc Process. Start (quotiexplorequot, simbolo quotfinance. yahooqhpsquot) myProc. WaitForExit () Riporta ancora immediatamente. Mercoledì 2 settembre 2009 20:48 Il problema è che non si sta iniziando una nuova istanza di iexplore. exe. Stai solo la creazione di una nuova finestra sul processo esistente. La mia ipotesi è inizia iexplore. exe, vede un'istanza precedente e comunica con l'istanza precedente in modo che si apre la nuova finestra, e quindi questo caso è iniziata immediatamente uscite. Così il comportamento è corretto e prevedibile. blog. voidnish Mercoledì 2 settembre 2009 20:52 Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione del sito Web MSDN. Se si sceglie di partecipare, il sondaggio on-line sarà presentato a voi quando si lascia il sito Web MSDN. Ti piacerebbe partecipare
Comments
Post a Comment