Visual Basic - Tratar aplicación que "no responde"

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 3
Ha disminuido su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Tratar aplicación que "no responde"

Publicado por Christian (2 intervenciones) el 07/08/2018 08:22:55
Buenos días a Tod@s,

tengo un problema para crear una aplicación, que lo único que hará será comprobar que una aplicación está abierta y funcionando de forma correcta (ajena a mi) para ello hago un chequeo y compruebo si está iniciada o no lo está y de no estarlo la inicio, así de forma continúa.

La aplicación estará (o debería) funcionando continuamente y a veces por razones ajenas se queda bloqueada y no responde...

No se me ocurre muchas formas de controlar este problema, de momento analizo el tiempo que pasa desde que lo detecto congelado hasta un contador en segundos (definido por mi) y si pasado ese tiempo no responde se cierra y vuelve a abrir.

No tengo constancia de que exista nada en vb.net para mejorar esta forma,

¿Alguien sabe o se le ocurre de algo para mejorar esto?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Tratar aplicación que "no responde"

Publicado por Antoni Masana (558 intervenciones) el 07/08/2018 10:35:40
Un problema típico de Visual Basic es que se "congele" ejecutando algún proceso, en realidad no se congela, sigue haciendo lo que se le ha dicho que haga.

Para entender el problema hay que entender que es un sistema multitarea y que es Windows.

Un sistema multitarea, véase por ejemplo Unix/Linux, ejecuta una parte de una tarea, pongamos durante una milésima de segundo, la deja y ejecuta otra durante una misma fracción y así sucesivamente con cada una de ellas y da la sensación que hace muchas cosas a la vez, que es lo percibimos y no es real.

Windows intenta hacer lo mismo pero no sabe realmente hacerlo. Cuando se programa un procedimiento largo Windows ejecuta es código desde el inicio al final y no hace otra cosa, lo que provoca esa sensación de "Congelarse", en realidad no sabe aparcar nuestro código y hacer otras cosas y hay que forzarlo a que lo haga.

¿Y como se hace? con el comando DoEvents

Esto sive para VBA de access, Excel, VB6, VB.NET y otras versiones.

https://msdn.microsoft.com/es-es/library/system.windows.forms.application.doevents(v=vs.100).aspx


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha disminuido su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Tratar aplicación que "no responde"

Publicado por Christian (2 intervenciones) el 07/08/2018 10:39:21
Muchísimas gracias Antoni,

En realidad la otra aplicación lo que hace es analizar documentos por lo que depende de archivos, cuando algo no funciona bien puede congelarse y tener que cerrarla. Al margen de eso, tienes razón en lo que dices, voy a revisar esa información

gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar