C# 通过FileSystemWatcher更新UI控件
我的代码中有一些问题:C# 通过FileSystemWatcher更新UI控件,c#,treeview,filesystemwatcher,C#,Treeview,Filesystemwatcher,我的代码中有一些问题: private void start_watcher() { fswFiler = new FileSystemWatcher(Control.filer.get_path(),"*.*"); //fswStorage = new FileSystemWatcher(Control.storage.get_path()); fswFiler.Changed += new FileSystemEventHandle
private void start_watcher()
{
fswFiler = new FileSystemWatcher(Control.filer.get_path(),"*.*");
//fswStorage = new FileSystemWatcher(Control.storage.get_path());
fswFiler.Changed += new FileSystemEventHandler(updatePend);
fswFiler.Deleted += new FileSystemEventHandler(updatePend);
fswFiler.Created += new FileSystemEventHandler(updatePend);
fswFiler.Renamed += new RenamedEventHandler(updatePend);
fswFiler.EnableRaisingEvents = true;
}
private void updatePend(object sender, FileSystemEventArgs e)
{
this.viewPend.Nodes.Clear();
Control.filer.refresh_files_list();
this.viewPend.Nodes.Add(Control.filer.get_files_node());
}
把我赶出节目。
知道为什么会发生这种情况吗?FileSystemWatcher通知发生在UI使用之外的另一个线程中。您必须
调用
见:
或者更好:它在哪里或哪一行“将您从程序中抛出”Control.filer.get\u path()
这是什么?它不会抛出异常..Control.filer.get\u path()-返回目录的字符串path@nadav通过在updatePend的第一行上放置一个断点,然后在代码中一步一步地执行,您可以找到它将您抛出程序的那一行。或者您可以在调试=>Exceptions…=>标记公共语言运行时异常旁边的复选框。