código base de mi empresa contiene la siguiente línea C#:Uso Directory.Exists en una carpeta de red cuando la red está abajo
bool pathExists = Directory.Exists(path);
En tiempo de ejecución, la cadena path
pasa a ser la dirección de una carpeta en la empresa de Intranet: algo así como \\company\companyFolder
. Cuando la conexión de mi máquina con Windows a la intranet está activa, funciona bien. Sin embargo, cuando la conexión se desactiva (como lo hizo hoy), la ejecución de la línea anterior hace que la aplicación se congele por completo. Solo puedo cerrar la aplicación matándola con el Administrador de tareas.
Por supuesto, preferiría tener Directory.Exists(path)
devolver false
en este escenario. ¿Hay alguna forma de hacer esto?
Esto podría engullir fácilmente todos los subprocesos disponibles en el grupo de subprocesos y causar más problemas dentro de la aplicación. Si va a hacer algo como esto, debe poder terminar la operación después de que haya transcurrido el tiempo de espera. –
@ csharptest.net ese es el problema, no puedes. El método 'Directory.Exists' no puede controlarse por los tiempos de espera y, dado que, en esencia, desciende inmediatamente al evento de código nativo, un' Thread.Abort' no lo ayudará. – JaredPar