C# 如何删除FileSystemWatcher对象的特定实例

C# 如何删除FileSystemWatcher对象的特定实例,c#,filesystemwatcher,windows-applications,C#,Filesystemwatcher,Windows Applications,我有一个windows应用程序,它使用FileSystemWatcher监视文件的更改。可以添加多个文件位置,并为每个位置创建一个新的FileSystemWatcher实例,并将该位置添加到列表框中。有一个从列表框中删除位置的选项。删除位置时,我需要删除/处置FileSystemWatcher的特定实例。有没有办法做到这一点?提前谢谢 FileSystemWatcher fsw; private void CreateFWInstance(string strLoc) {

我有一个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;

        }
    }

您需要保留对实例的引用,例如,作为列表框条目中的值,或者可能是从路径映射到观察者的
字典。然后只需处理观察者并将其从字典中删除/删除列表项。

您需要保留对实例的引用,例如,作为列表框条目中的值,或者可能是从路径映射到观察者的
字典。然后只需处置观察者并将其从字典中移除/移除列表项。

如何处置对象实例?我试图从字典中删除该项,但仍在监视该位置。请调用Dispose,就这么简单!(设置EnableRaisingEvents也应该起作用,但无论如何都应该处理它。)如何处理对象实例?我试图从字典中删除该项,但仍在监视该位置。请调用Dispose,就这么简单!(设置EnableRaisingEvents也应该起作用,但无论如何都应该处理它。)