FileSystemWatcherを使用してフォルダを監視して、そこから指定されたファイルを削除しました。 FileSystemWatcherイベントが発生すると、新しいスレッドを作成してファイルを削除します。コードスレッドは安全ですか? スレッドからアクセスされる静的Logメソッドについてはわかりません。静的メソッドを静的クラスから別のスレッドにアクセスします。それは安全ですか?
FileSystemWatcher.EventRaised....
{
var delFolder = Path.GetDirectoryName(e.FullPath);
var t = new Thread(DeleteThread.Do);
t.Start(delFolder);
}
/*..code skip...*/
static class DeleteThread
{
public static void Do(object delFolder)
{
try
{
Log("Deleting folder {0}", (string)delFolder);
Directory.Delete((string)delFolder, true);
}
catch (Exception e)
{
Log("Error deleting folder {0}. {1}", (string)delFolder, e.Message);
}
}
}
private static void Log(string text, string text1 = "", string text2 = "", string text3 = "")
{
Console.WriteLine(text, text1, text2, text3);
}
固有のフォルダはDirectory.Delete()メソッドに渡されるため、ここでは問題は発生しません。 – Tomas
入れ子のフォルダはどうですか?複数のFileWatchers?だからこそ "あなたは**得ることができた**"です。 – DiVan
それは正しいですが、自分の状況ではサブフォルダのない最上位のフォルダしか持っていないと説明していません。一般的にあなたは正しいです! – Tomas