私の問題についてこの記事(Can't delete a file using threads)を読んでいましたが、物事は私には難しくなっています。C#を使用してファイルを削除スレッド
私の問題は、私はメソッドを起動した場合、「dlMoveNovaVersao」は、通常、ファイルが削除されますが、私は(怒鳴るような)スレッド上でこれを置けば、私はあなたではない」だ、私はこの古いファイルを削除したい、本当に簡単です許可する "。誰かが何が問題なのかを知っていますか? (私はスレッドを使用したい)。
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);
}
ちょうど私のプログラム(スーパーバイザースターター)は、私が実行している「スーパーバイザー」(XMLを使用して)の古いバージョンを持っている場合がある場合、それが本当なら、私の「スーパーバイザースターターは」検証のウェブサイトをご確認の上、目的をdiscribe 「スーパーバイザースターター」が新しいバージョンをダウンロードして実行した後、「スーパーバイザー」と呼ばれるプロセスが実行され、終了します。 (プログラムは小さく、アップデートには4秒以上かかることはありません)。
私の "Supervisor Starter"が私のプログラムの古いバージョンを削除しようとすると、問題が始まります。スレッドを使用すると、「私はファイルにアクセスする権限がありません」というメッセージが表示されますが、Formクラスで同じメソッドを使用するとファイルは削除されます。
人々はしばしばこの問題を有していてもよく、それは古典的だ使用されるスレッド内のファイルを削除するための私の機能である参照してください。この質問のレベルをここで見ることができれば嬉しいです。 –