ruak 发表于 2016-4-29 16:49:24

命令中监控大到文件变化后打开文件失败

想做一个利用FileSystemWatcher监控某个文件夹下的dwg文件变化,然后对变化的文件进行处理的命令。
部分代码如下

      public void ShowTheWatcher()
      {            
            FileSystemWatcher watcher = new FileSystemWatcher();
            watcher.Path = strPath;
            watcher.Filter = "*.dwg";
            watcher.Changed += new FileSystemEventHandler(OnProcess);
            watcher.Created += new FileSystemEventHandler(OnProcess);
            watcher.Deleted += new FileSystemEventHandler(OnProcess);
            watcher.Renamed += new RenamedEventHandler(OnRenamed);
            watcher.EnableRaisingEvents = true;
         }

}
private void OnProcess(object source, FileSystemEventArgs e)
      {
            if (e.ChangeType == WatcherChangeTypes.Created)
            {
                OnCreated(source, e);
            }
            else if (e.ChangeType == WatcherChangeTypes.Changed)
            {
                OnChanged(source, e);
            }
            else if (e.ChangeType == WatcherChangeTypes.Deleted)
            {
                OnDeleted(source, e);
            }

      }
//测试时删除某个文件,可以进入到事件处理逻辑中,打开指定的文件时报错。
private void OnDeleted(object source, FileSystemEventArgs e)
      {
            
            try
            {
                Document dcOpeating = Application.DocumentManager.Open(@"E:\Workpath\@测试图纸集\津2分图.dwg", false);
                Database dbOperating = dcOpeating.Database;

                DocumentLock dlock = dcOpeating.LockDocument();
                Transaction transOperating = dbOperating.TransactionManager.StartTransaction();
                Editor edOperating = dcOpeating.Editor;
               
            }
            catch (System.Exception exx)
            {

            }
      }
执行到Open行时会出现FATAL ERROR.
求助各位大神了,谢谢

ruak 发表于 2016-4-29 16:54:55

如果在一个命令下,直接用上述语句打开文件没有问题,为什么放置到别的消息处理逻辑中就会出现致命错误呢?

你有种再说一遍 发表于 2024-8-29 05:19:59

事别8年,告诉你为什么

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=191035&page=1&extra=#pid992837
页: [1]
查看完整版本: 命令中监控大到文件变化后打开文件失败