为FileSystemWatcher服务整合多线程

时间:2011-08-29 04:32:34

标签: multithreading filesystemwatcher

当我收到来自FileSystemWatcher的通知时,我想启动一个单独的线程来处理进一步的处理。

如何在FileSystemWatcher服务中进行多线程处理以进行事件处理?

1 个答案:

答案 0 :(得分:-1)

我不明白为什么人们无法回答这个简单的问题。对于任何其他想知道这一点的人来说,这里有一种方式:

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);
    }
}