我正在使用FileSystemWatcher類,並注意到創建事件的事件處理程序在單獨的線程上運行。我想了解多線程編程,並且有一種印象,那就是您獲得的唯一線程是主線程。事件處理程序似乎創建新線程
我認爲,當你想擁有另一個線程時,你需要明確地創建它。我很困惑爲什麼eventhandler方法中的代碼在不同於主線程的線程中運行。
class Program
{
static void Main(string[] args)
{
FileSystemWatcher w = new FileSystemWatcher(@"c:\test\");
w.Created += new FileSystemEventHandler(OnCreated);
w.EnableRaisingEvents = true;
Console.ReadLine();
}
private static void OnCreated(object source, FileSystemEventArgs e)
{
// Specify what is done when a file is changed, created, or deleted.
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType + " " + Thread.CurrentThread.ManagedThreadId);
}
}
我希望有人能爲我澄清這一點。謝謝
「FileSystemWatcher類」...那是哪種語言? –
我的意思是System.IO.FileSystemWatcher在C# – user3378547
請找到編輯你的問題的按鈕,然後!有些人只對他們感興趣的語言進行過濾,所以他們甚至不會看到你的問題。例如,由於多線程標誌,我碰巧碰到它,但我現在幾乎沒有任何關於C#(或Java,因爲JimN猜測)。 –