Sunday 25 December 2016

Espera Por El Método De Error

Ahora mismo estoy trabajando en una aplicación de Consola Runner que tiene el código siguiente para dar salida al registro y esperar hasta que el proceso se complete: Tengo dos preguntas sobre este código. Me di cuenta de que si el proceso tarda más de 30 segundos, la llamada p. ExitCode bombas. Qué sucede si mi proceso toma solamente 1 segundo, esperará 30 segundos de todos modos o el proceso será aconsejado por el CLR preguntó Feb 5 14 en 12:40 ocultan estos secretos en la documentación: si usted intenta conseguir el código de salida antes del Proceso ha salido, el intento lanza una excepción. Examine primero la propiedad HasExited para verificar si el proceso asociado ha finalizado. Quot y quotWaitForExit. Y bloquea el hilo actual de ejecución hasta que haya transcurrido el tiempo o el proceso haya salido de ndash Alex K. Feb 5 14 at 12:44 Lo encontré también, pero no estaba seguro de haberlo leído correctamente. Por lo tanto, parece que si el proceso de salida antes de la marca de tiempo dentro de WaitForExit no hay problemas, pero al revés causa una bonita excepción. Gracias ndash Raffaeu Feb 5 14 at 12: 49WaitForExit () es un método de bloqueo de subprocesos Esta es exactamente la causa del problema. Si WaitForExit se llama desde el subproceso Forms, evitará que el Formulario se vuelva a dibujar. Al arrastrar algo delante de una ventana bloqueada se deja un rastro de la ventana arrastrada. Propuesto como respuesta por ahmedilyas Moderador Jueves 28 de Julio de 2011 10:34 Marcado como respuesta por Jackie-Sun Moderador Lunes 08 de Agosto de 2011 6:50 AM Jueves 28 de Julio de 2011 10:18 AM El código sería mejor y También sería mejor si nos puede decir exactamente lo que está tratando de lograr. WaitForExit () simplemente espera (bloquea el código para esta duración) para que un proceso salga antes de continuar con la ejecución de su código de llamada. MS MVP (2007-2010) MS Vendor - MS Todo el camino Seguidor desde 1995 MS Super Evangelist MSDN Moderador de Foros Propuesto como respuesta por ahmedilyas Moderador Jueves 28 de Julio de 2011 10:33 Marcado como respuesta por Jackie-Sun Moderador Lunes, Agosto 08, 2011 6:50 AM Thursday, July 28, 2011 9:57 AM Todas las respuestas Creo que esto no tiene relación con la función waitforexit. Qué forma estás arrastrando. Primera forma exe o segunda forma exe. Un pequeño código se aprecia, marque mi mensaje como respuesta si mi mensaje era útil para usted Jueves 28 de Julio de 2011 9:52 AM El código sería mejor y también sería mejor si nos puede decir exactamente lo que está tratando de lograr . WaitForExit () simplemente espera (bloquea el código para esta duración) para que un proceso salga antes de continuar con la ejecución de su código de llamada. MS MVP (2007-2010) MS Vendor - MS Todo el camino Seguidor desde 1995 MS Super Evangelist MSDN Moderador de Foros Propuesto como respuesta por ahmedilyas Moderador Jueves 28 de Julio de 2011 10:33 Marcado como respuesta por Jackie-Sun Moderador Lunes, Agosto 08, 2011 6:50 AM Thursday, July 28, 2011 9:57 AM i had checked. it tiene un problema en waitforexit () only. i notado que el problema cuando se mueva segunda forma exe Editado por RAJ KUMAR. R Jueves, 28 de julio, 2011 10:09 AM Jueves, 28 de julio de 2011 10:02 AM Qué es exactamente el problema que usted leyó mi respuesta También leyeron el enlace que había proporcionado WaitForExit () es un método de bloqueo de hilo que hará exactamente eso - esperar Para que un proceso salga antes de que continúe con su código. No hará que su formulario se oculte o minimice en absoluto, a menos que le diga a su código que lo haga antes de llamar a WaitForExit () C MVP (2007-2010) MS Vendor - MS Todo el camino Seguidor desde 1995 MS Super Evangelist Moderador de MSDN jueves, 28 de julio 2011 10:05 Todo está funcionando bien. pero cuando muevo el formulario, muestra múltiples formas. Jueves, 28 de julio de 2011 10:09 WaitForExit () es un método de bloqueo de subprocesos Esta es exactamente la causa del problema. Si WaitForExit se llama desde el subproceso Forms, evitará que el Formulario se vuelva a dibujar. Al arrastrar algo delante de una ventana bloqueada se deja un rastro de la ventana arrastrada. Propuesto como respuesta por ahmedilyas Moderador Jueves 28 de Julio de 2011 10:34 Marcado como respuesta por Jackie-Sun Moderador Lunes 08 de Agosto de 2011 6:50 AM Jueves 28 de Julio de 2011 10:18 AM cuando dices mostrando múltiples formularios - estás hablando de múltiples instancias de los formularios o simplemente el dibujo / renderizado si es el dibujo / renderizado entonces sí, como dijimos antes - es porque está esperando que el proceso finalice antes de que continúe y se bloquee el hilo tan Usted verá el quotproblemquot que usted está pareciendo describir. No hay quotfixquot para esto, ya que no es un error o un problema, sino simplemente lo que está utilizando y cómo lo está utilizando. Hay una razón por la que está utilizando WaitForExit (). Tiene que mostrar su formulario cuando está usando WaitForExit () Por qué no ocultar o minimizar el formulario antes de llamar a WaitForExit () y luego restaurarlo después de las palabras C MVP (2007-2010) MS Vendor - MS Todo el camino Seguidor desde 1995 MS Super Evangelist Moderador de MSDN jueves, 28 de julio de 2011 10:35 Microsoft está realizando una encuesta en línea para entender su opinión sobre el sitio web de Msdn. Si decide participar, se le presentará la encuesta en línea cuando abandone el sitio Web de Msdn. Quieres participar? Ayúdanos a mejorar MSDN. Visite nuestra página UserVoice para enviar y votar ideas Centros de desarrollo Recursos de aprendizaje Community Support ProgramsProcess. WaitForExit Method () WaitForExit () hace que el subproceso actual espere hasta que finaliza el proceso asociado. Se debe llamar después de que se llamen todos los otros métodos en el proceso. Para evitar bloquear el subproceso actual, utilice el evento Exited. Este método ordena al componente Proceso que espere una cantidad infinita de tiempo para que el proceso y los manejadores de eventos salgan. Esto puede hacer que una aplicación deje de responder. Por ejemplo, si llama a CloseMainWindow para un proceso que tiene una interfaz de usuario, la solicitud al sistema operativo para finalizar el proceso asociado puede no ser manejada si el proceso se escribe para no introducir nunca su bucle de mensajes. En. NET Framework 3.5 y versiones anteriores, la sobrecarga WaitForExit () esperaba MaxValue milisegundos (aproximadamente 24 días), no indefinidamente. Además, las versiones anteriores no esperaron a que los manejadores de eventos salieran si se alcanzó el tiempo máximo de MaxValue. Esta sobrecarga asegura que todo el procesamiento ha sido completado, incluyendo el manejo de eventos asíncronos para la salida estándar redireccionada. Debe utilizar esta sobrecarga después de una llamada a la sobrecarga WaitForExit (Int32) cuando la salida estándar se ha redirigido a los controladores de eventos asincrónicos. Cuando sale un proceso asociado (es decir, cuando el sistema operativo lo cierra mediante una terminación normal o anormal), el sistema almacena información administrativa sobre el proceso y regresa al componente que había llamado WaitForExit (). A continuación, el componente Proceso puede acceder a la información, que incluye ExitTime. Utilizando el identificador al proceso salido. Como el proceso asociado ha salido, la propiedad Handle del componente ya no apunta a un recurso de proceso existente. En su lugar, el identificador se puede utilizar sólo para tener acceso a la información de los sistemas operativos sobre el recurso de proceso. El sistema conoce los identificadores de los procesos salientes que no han sido liberados por los componentes del proceso, por lo que mantiene la información ExitTime y Handle en memoria hasta que el componente Process libere específicamente los recursos. Por esta razón, cada vez que llama a Inicio para una instancia de proceso, llame a Cerrar cuando el proceso asociado ha finalizado y ya no necesita ninguna información administrativa sobre él. Cerrar libera la memoria asignada al proceso salido.


No comments:

Post a Comment