c# - 应用程序很少在 Debug模式下完成加载,但 "run without debug"加载正常

标签 c# winforms visual-studio devexpress

  • F5 -> 在随机点停止

  • Ctrl-F5 -> 立即加载。意思是我必须“附加到 过程”进行调试。

如果我想更改代码并立即反射(reflect)出来,这会很烦人。

这是否与加载符号源有关?我试过在正常 Debug模式下运行时暂停应用程序,但每次都会在不同的地方暂停。

编辑:我所说的停止是指应用程序被卡住(带有进度条的启动窗体在加载几秒钟后变得无响应)。如果我点击暂停,主线程的位置永远不会一致。它最终会在某个时间点后完成加载,这表明它正在等待某些东西,尽管这个等待时间似乎也会发生变化。

Microsoft pdb 的符号服务器未选中。未选中已启用的 .NET Framework 源步进。 Enabled Just My Code 被选中。未选中启用的源服务器支持。

最佳答案

一个已知但偶发的问题,自 Visual Studio 2005 以来就有很长的历史。该问题影响多线程应用程序,这些应用程序使用完成回调执行一些 I/O 操作。我个人收据来解决这个问题:

  • 开发机器应该至少有 2 个 CPU 内核
  • 从 Breakpoints 窗口中删除所有断点。有时过时的会导致调试器无限循环
  • 在程序的最开始设置一个断点,最好是在 main 函数处。如果你有一个主窗体,那么你可以尝试在它的构造函数的第一行设置一个断点。不要删除该断点 - 否则调试器将再次开始挂起,您将需要重新设置它。是的,断点似乎没有用,但它有助于调试器保持良好状态
  • 如果上述建议没有帮助,那么如果应用程序是无窗口的,则尝试在程序的最开始调用 System.Window.Forms.MessageBox.Show("123")。您也可以尝试在 Show 方法上或之后设置断点

关于c# - 应用程序很少在 Debug模式下完成加载,但 "run without debug"加载正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8995902/

相关文章:

c# - EF,代码优先 - 如何在插入时设置自定义 Guid 标识值

c# - 在 C# 中移动图像

git - 尝试使用 TFS 和 GIT merge 分支时访问拒绝写入 VS 项目 .suo

c# - 内联 "if": obtain and test a value in one call

c# - Xamarin Forms 可移植 Windows 应用程序无法导航

c# - 为什么在 VB.Net 中每个表单都有一个默认实例,而在 C# 中却没有?

.net - 要求用户像 VS 调试器一样使用管理权限重新启动应用程序

visual-studio - 如何在 msbuild.exe 启动和结束时调用我的 MSBuild 目标

c# - 在 asp.net 的单独类文件中添加和维护命名字符串

c# - 如何检测应用程序何时失去焦点?