Visual Studio 2015调试:点击Step Into无法步入FileCreated方法求助
解决VS2015调试时无法步入FileCreated事件处理方法的问题
这是个很典型的事件调试误区,我来帮你理清楚:
为什么Step Into跳过了FileCreated?
你设置断点的_watch.Created += this.FileCreated;这行代码,只是把FileCreated方法注册为Created事件的处理程序,并没有直接调用这个方法。调试器在这里执行Step Into,只会进入.NET框架内部的事件委托注册逻辑,不会跳转到你的FileCreated方法里——毕竟这个方法要等Created事件被触发才会执行。
如何调试FileCreated方法?
这里有几个靠谱的办法:
直接在FileCreated内部加断点:
打开你的FileCreated方法,在第一行代码(比如// some code那行上面)设置断点。当文件系统监控器(FileSystemWatcher)检测到文件创建操作时,事件会触发,调试器就会自动命中这个断点,你就能逐步调试方法内部的代码了。手动触发事件(测试用):
如果想主动触发事件来调试,可以在注册事件的代码后面,手动调用事件的Invoke方法:_watch.Created += this.FileCreated; // 手动触发事件,替换成实际的路径和文件名 _watch.Created?.Invoke(this, new FileSystemEventArgs(WatcherChangeTypes.Created, @"C:\你的监控目录", "test.txt"));这样调试器执行到Invoke这行时,Step Into就能直接进入FileCreated方法。
检查调试配置:
确保你的项目是Debug模式编译(不是Release),并且生成了pdb调试文件;另外可以去VS的「工具->选项->调试->常规」里,取消勾选「启用仅我的代码」(如果开启的话,可能会意外跳过自定义方法的调试)。
内容的提问来源于stack exchange,提问作者ZMAX
相关产品推荐
相关产品推荐

