2012-08-25 87 views
1

我有一個使用FileSystemWatcher監視文件更改的Windows應用程序。可以添加多個文件位置,併爲每個位置創建FileSystemWatcher的新實例,並將位置添加到列表框中。有一個選項可以從列表框中刪除一個位置。當某個位置被刪除時,我需要刪除/處理特定的FileSystemWatcher實例。有什麼辦法可以達到這個目的嗎?提前致謝。如何刪除FileSystemWatcher對象的特定實例

FileSystemWatcher fsw; 

    private void CreateFWInstance(string strLoc) 
    { 
     if (strLoc != string.Empty) 
     { 
      fsw = new FileSystemWatcher(); 
      fsw.Changed += new FileSystemEventHandler(OnChanged); 

      fsw.Path = strLoc; 
      fsw.SynchronizingObject = this; 

      fsw.EnableRaisingEvents = true; 

     } 
    } 

回答

6

那麼你需要保持對實例的引用,例如,作爲列表框條目中的,或者可能是從路徑映射到觀察者的Dictionary<string, FileSystemWatcher>。然後處置觀察者並將其從字典中移除/刪除列表項。

+0

我該如何處置對象實例?我嘗試從字典中刪除該項目,但位置仍在觀看。 – TechDo

+0

呼叫處置 - 就這麼簡單! (設置EnableRaisingEvents應該也可以,但是你應該放棄它。) –

+0

好吧...會嘗試一下。 – TechDo