Sunday 27 August 2017

Redirectstandarderror Waitforexit Doesnt Aspettare


Così mi sono state combattendo questo problema per un po 'ora e provato molti modi diversi per risolvere il problema, ma non ci riesco. Bascally il livello qualitativo la mia applicazione non fa altro che richiama un file Java per caricare un'applicazione su un dispositivo. Mentre il suo carico la sua è la stampa a una casella RTF, quindi vorrei passare al file successivo. Il problema che sto avendo è che, mentre il primo file viene caricato, il 2 ° cerca di caricare quali casi problemi. Ho provato l'attesa per l'uscita, ma se lo faccio, poi i dati di uscita non ottiene scritta alla casella di testo ricco. Tutte le idee ho provato a mettere l'attesa per l'uscita in molti luoghi diversi, ma doesnt sembrano funzionare. Due metodi di sotto scrivere il stdout o errore al campo richtext. Qualunque idea sarebbe apprezzata. Bascally Ho bisogno il processo di uscire, così poi posso continuare pensato che il forloop per caricare il file successivo. Sei sempre qualsiasi tipo di messaggio di errore Mi sembra come i tuoi argomenti sono - Xmx512M - jar. manca uno spazio dopo l'opzione riga di comando - jar. Questo potrebbe essere la causa per uscire solo subito a causa di non essere in grado di capire il comando. Inoltre, come suggerito M. Babcock, spostare il metodo loaddPB fuori dal thread dell'interfaccia utente, e assicurarsi di avvolgere la parte di carico in un semaforo, in questo modo solo un singolo file viene caricato in un momento e l'interfaccia utente può continuare a fare quello di cui ha bisogno fare. ndash SPFiredrake 9 febbraio 12 a 15:29 Sappiate che questo è un po quothackishquot in quel you39re ancora bloccando il thread UI, ma you39re pompare manualmente gli eventi attraverso la coda di messaggi. Questa non è una pratica migliore, e la maggior parte degli sviluppatori vi consiglierà contro di essa. L'opzione migliore è quello di gettare il codice di caricamento in un thread separato. ndash SPFiredrake 9 febbraio 12 a 15: 54I hanno una situazione in cui voglio eseguire un file, e quindi eliminare il file eseguibile quando l'esecuzione è fatto. Io uso System. Diagnostics. Process. Start () per eseguire il file, e utilizzare. WaitForExit () per attendere il completamento del processo. Ho quindi utilizzare File. Delete (nome del file) per eliminare il file eseguibile. Il problema è che a volte, File. Delete non riuscirà con il seguente errore: Questo mi porta a credere che, in qualche modo, il processo è ancora in vita e il blocco del file eseguibile anche dopo le. WaitForExit () restituisce chiamata. Ho trovato altri thread sulla rete che descrivono lo stesso comportamento, ma non ho trovato alcun che si concludono con una spiegazione ragionevole o una soluzione al problema, diverso da suggestioni di mettere un sonno (n) dopo il WaitForExit (). Esempi: Ecco un esempio di programma che riproduce il problema per me. Ho testato sia su Windows XP e Windows 7, ed entrambi alla fine non riescono a un certo punto con lo stesso errore. Si noti inoltre che l'eseguibile Ss. exe è una semplice applicazione semplice console quotHello Worldquot. e l'uscita si presenta tipicamente qualcosa di simile (con diverse quantità di iterazioni prima del crollo si verifica): Tutte le idee su perché questo accade, e se c'è qualche correzione di questo (altro che mettere dorme nel codice) Venerdì, 8 gennaio 2010 3 : 40 PM la ragione è che, anche se il processo viene completato, potrebbero essere necessari pochi millisecondi per il sistema operativo per completare distruggerlo. Il suo un multi-tasking OS, dopo tutto, il suo tentativo di servire tutti allo stesso tempo. Unfortunetely, non vi è alcun modo di sapere quando il file non è bloccato (presicely). Quando si WaitForExit, si sta creando un oggetto di blocco per l'oggetto processo. L'oggetto processo non può essere distrutto fino a quando il blocco viene rilasciato e non si può aspettare su qualcosa che doesnt esistere (pollo e uova tipo di problema). Quindi l'unica cosa ragionevole che si può fare è continuare a provare, qualcosa di simile a: Contrassegnato come risposta da Samuel Stanojevic Venerdì 8 gennaio 2010 16:20 A cura di Tergiver Venerdì 8 gennaio 2010 16:20 cambiato in bool, ciclo infinito fix Venerdì 8 Gennaio 2010 16:15 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

No comments:

Post a Comment