Monday 20 November 2017

Enableraisingevents Waitforexit


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 Reserved. I sono nuovo del modello di thread in. Cosa vorresti usare per: avviare un processo che gestisce un file (process. StartInfo. FileName fileName) attendere che l'utente di chiudere il processo o abbandonare il filo dopo qualche tempo, se l'utente ha chiuso il processo, eliminare il file Avvio del processo e attesa dovrebbe essere fatto su un thread diverso da quello del thread principale, perché questa operazione non dovrebbe pregiudicare l'applicazione. La mia applicazione genera un report HTML. L'utente può fare clic destro da qualche parte e dire View Report - ora recuperare il contenuto del report in un file temporaneo e lanciare il processo che gestisce i file html cioè il browser predefinito. Il problema è che non posso pulizia, cioè eliminare il file temporaneo. chiesto 4 marzo 09 alle 15:35 il mio processo converte i file di FLV e li riproduce con javascript. Quando chiamo la funzione senza Thread. Sleep () dopo di esso. i cant ottenere la conversione, né il giocatore non ha ancora bcoz il filo in tempo a finire il suo lavoro prima che la pagina load..butwhen ho messo un sonno dopo la funzione. thats quando im ottenere il mio lettore. ndash Grazia 4 luglio 11 alle 11.24 Aggiunta di una alternativa avanzata per questa vecchia domanda. Se si desidera attendere per un processo per uscire senza bloccare qualsiasi filo e ancora sostenere timeout, provare quanto segue: Anche in questo caso, il vantaggio di questo approccio rispetto alla risposta accettata è che non sei il blocco qualsiasi thread, che riduce l'overhead della vostra applicazione . risposto 30 luglio 13 a 0:39 Io probabilmente non utilizzare un processo separato per l'apertura di un file. Invece, Id probabilmente utilizza un thread in background (se ho pensato che l'operazione stava per prendere un lungo periodo di tempo e l'eventuale blocco del thread UI). Naturalmente, questo non è un buon esempio di lavoro (che non restituisce nulla) e ho havent mostrato come l'interfaccia utente viene aggiornato (è necessario utilizzare BeginInvoke a livello di interfaccia utente, perché un thread in background non può aggiornare il thread UI). Ma questo approccio è generalmente come vado sulla gestione operazioni asincrone in. ha risposto 4 marzo 09 a 15:46

No comments:

Post a Comment