在调试模式下单步执行时 GUI 不会重绘

2023-12-12

在任何 .NET 2.0 Winforms 应用程序中,如果您在调试模式下运行代码,并且您要么命中断点,要么逐行单步执行代码,并且您希望查看正在调试的应用程序的 GUI,那么 .NET 会执行以下操作:不绘制应用程序屏幕。

例如,我有一个应用程序,它将一些消息写入表单上的文本框。当我一步步调试代码时,或者当遇到断点时,我想查看 TextBox 中记录的所有消息,但是如果我按 Alt-Tab 从 VS2005 窗口切换到 WinForms 应用程序窗口,我看到的只是是白色。除非您在 VS2005 的调试模式下按 F5,否则该窗体不会重新绘制。

这是什么原因,有没有办法克服这个问题,而不在代码中引入任何线程?


这是什么原因

在调试时,您实际上阻塞了 UI 线程 - 您正在手动单步执行其执行流程。当您停止执行 UI 线程时,它无法绘制 UI。

有没有办法克服这个问题

你可以try呼叫Application.DoEvents()手动,但我通常建议不要这样做。

最好等到方法结束并让 UI 正常重绘。如果你的方法很长(就时间而言),那么请记住,当not调试时,该方法执行时 UI 仍然无法自行更新。这可能会导致您改变您的设计(仅从我们目前掌握的信息很难判断)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在调试模式下单步执行时 GUI 不会重绘 的相关文章

随机推荐