当我收到来自FileSystemWatcher的通知时,我想启动一个单独的线程来处理进一步的处理。
如何在FileSystemWatcher服务中进行多线程事件处理?
我不明白为什么人们不能回答这个简单的问题。对于其他想知道这一点的人,这里有一个的方法:
class Program
{
static void Main(string[] args)
{
FileSystemWatcher fsw = new FileSystemWatcher();
fsw.Path = @"C:temp";
fsw.Created += new FileSystemEventHandler(onCreatedFile);
fsw.EnableRaisingEvents = true;
Console.ReadLine();
}
private static void onCreatedFile(object sender, FileSystemEventArgs e)
{
Console.WriteLine("Thread " + AppDomain.GetCurrentThreadId() + " detected " + e.FullPath);
Thread t = new Thread(new ParameterizedThreadStart(seperateThread));
t.Start(e);
}
private static void seperateThread(object obj)
{
FileSystemEventArgs e = (FileSystemEventArgs)obj;
Console.WriteLine("Thread " + AppDomain.GetCurrentThreadId() + " detected " + e.FullPath);
}
}