我使用FileSystemWatcher監視文件夾以從中刪除指定的文件。當FileSystemWatcher事件引發時,我創建了新的線程來刪除文件。我的代碼線程安全嗎? 我不確定從線程訪問的靜態日誌方法。從不同線程的靜態類訪問靜態方法。它安全嗎?
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