Tôi đã đọc bài viết này (Can't delete a file using threads) về vấn đề của tôi nhưng mọi thứ đang trở nên khó khăn với tôi.Xóa tệp bằng C# Chủ đề
Vấn đề của tôi rất đơn giản, tôi chỉ muốn xóa tệp cũ này, nếu tôi bắt đầu phương pháp "dlMoveNovaVersao" bình thường thì tệp sẽ bị xóa nhưng nếu tôi đặt nó lên một chủ đề (như dưới đây) cho phép ". Ai đó biết vấn đề là gì? (Tôi muốn sử dụng thread).
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);
}
Chỉ tả mục đích, chương trình của tôi (Supervisor Starter) kiểm tra trên trang web nếu tôi có một phiên bản cũ của "Giám sát" chạy (sử dụng XML), Nếu đó là sự thật của tôi "Giám sát Starter" xác minh nếu có một quá trình gọi là "Giám sát" chạy và giết nó sau đó "Giám sát Starter" tải về phiên bản mới và chạy nó. (Chương trình nhỏ và bản cập nhật không mất nhiều hơn sau đó 4 giây).
Sự cố bắt đầu khi "Người giám sát bắt đầu" của tôi thử xóa phiên bản cũ của chương trình của tôi. Nếu tôi sử dụng thread tôi nhận được "Tôi không có quyền truy cập vào tập tin", nếu tôi sử dụng cùng một phương pháp trên lớp Form tập tin sẽ bị xóa.
dân có thể thường có vấn đề này, đó là một cổ điển luồng câu hỏi imho, và như vậy tốt của nó để xem mức độ câu hỏi ở đây. –