I have monitoring a folder using FileSystemWatcher to delete specified files from it. When FileSystemWatcher event is raised I create new thread to delete file. Is my code thread safe? I am not sure about static Log method which is accessed from Threads.
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);
}