Estaba leyendo este artículo (Can't delete a file using threads) sobre mi problema pero las cosas se me están poniendo difíciles.Eliminar archivo usando C# Hilo
Mi problema es realmente simple, solo quiero eliminar este viejo archivo, si comienzo el método "dlMoveNovaVersao" normalmente el archivo se elimina pero si pongo esto en un hilo (como abajo) recibí "No eres permitir". Alguien sabe cuál es el problema? (Quiero usar hilo).
private void verificaVersaoSupervisor_Tick(object sender, EventArgs e)
{
Thread threadConexao = new Thread(threadVerificaConexao);
threadConexao.Start();
}
public void threadVerificaConexao()
{
try
{
Dns.GetHostEntry("www.google.com.br");
if (verificaVersao())
{
try
{
verificaKillSupervisor();
dlMoveNovaVersao();
Application.Exit();
}
catch (Exception)
{ }
}
else
{
Application.Exit();
}
}
catch (Exception)
{ }
}
public void dlMoveNovaVersao()
{
WebClient webClient = new WebClient();
webClient.DownloadFile("Anywebsite", @"c:\temp\supervisor.exe);
try
{
File.Delete(@"c:\Test\supervisor.exe); //This file is always there!
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
Sólo puedo describirlo con el propósito, Mi programa (supervisor de arranque) comprobar en la página web si tengo una versión antigua de "supervisor" en ejecución (XML), si bien es cierto que mi "Supervisor de arranque" verificar si hay una proceso llamado "Supervisor" ejecutándose y elimínalo después de que "Supervisor Starter" descargue la nueva versión y ejecútela. (El programa es pequeño y la actualización no toma más de 4 segundos).
El problema comenzó cuando mi "Supervisor Starter" intenté eliminar la versión anterior de mi programa. Si utilizo thread recibo "No tengo permiso para acceder al archivo", si utilizo el mismo método en la clase Form, el archivo se elimina.
personas pueden a menudo tienen este problema, que es un clásico Enhebrar la pregunta, y como tal, es bueno ver este nivel de pregunta aquí. –