Wednesday, 30 August 2017

Processo Non Waitforexit Attesa


Consente di leggere ciò che dice di MSDN su di esso: The WaitForExit () () () di 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. VUOI participateProcess. WaitForExit Method () WaitForExit () rende l'attuale attesa filo fino a quando il processo associato termina. Dovrebbe essere chiamato dopo che tutti gli altri metodi sono chiamati sul processo. Per evitare di bloccare il thread corrente, utilizzare l'evento terminato. Questo metodo indica al componente del processo di aspettare una quantità infinita di tempo per il processo e di gestori di eventi 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. Nelle versioni Framework 3.5 e versioni precedenti, la WaitForExit () sovraccarico aspettava millisecondi MaxValue (circa 24 giorni), non a tempo indeterminato. Inoltre, le versioni precedenti non hanno atteso per i gestori di eventi per l'uscita se è stato raggiunto il tempo di MaxValue pieno. 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. Quando un processo esce associato (cioè, quando viene arrestato dal sistema operativo attraverso una normale chiusura o anormale), il sistema memorizza informazioni amministrative sul processo e ritorna al componente che aveva chiamato WaitForExit (). Il componente processo può quindi accedere alle informazioni, che comprende il ExitTime. utilizzando la maniglia per il processo è terminato. Poiché il processo associato è uscito, la proprietà Handle del componente non fa riferimento a una risorsa processo esistente. Invece, la maniglia può essere utilizzato solo per accedere alle informazioni sistemi operativi sulla risorsa processo. Il sistema è a conoscenza di maniglie ai processi usciti che non sono stati rilasciati da componenti di processo, in modo che mantiene il ExitTime e gestire le informazioni in memoria fino a quando il componente Process libera specificamente le risorse. Per questo motivo, ogni volta che si chiama di avvio per un'istanza di processo, invito a chiudere quando il processo associato è terminato e non è più necessario tutte le informazioni amministrative su di esso. Chiudere libera la memoria allocata per il processo è terminato.

No comments:

Post a Comment