有没有人遇到过.Net
Windows Forms应用程序导致严重桌面闪烁的情况?
我有一个Windows窗体应用程序(.Net 3.5,C#),在usercontrol中有一个datagridview.
偶尔,在同时运行其他应用程序时(我用Louts Notes看到它,但最糟糕的行为是路透社Bridge Station的用户),切换到我的应用程序然后转到另一个应用程序会导致整个桌面闪烁,冻结所有用户交互,从几秒钟到接近一分钟. (所有使用Windows XP Professional的用户)
即使网格中有少量数据,也会发生这种情况
我没有在应用程序中进行任何自定义绘制,我很确定我的代码目前都没有运行任何刷新或重新绘制.
我已经启用了双缓冲,所以这不是解决方案.
我发现(在MS论坛中)一个有趣的事情是,设置表单的TransparencyKey将解决问题 – 有时候. (特别是对于Louts Notes用户,但不适用于Bridge Station用户.)
受影响的用户正在通过在切换到其他应用之前最小化数据输入后的应用程序来解决此问题.
我会非常感激任何想法,因为我正在梳理我的头发.我开始时没有太多的头发.
YS
解决方法
如果在从visual studio调试时发生这种情况,您可以尝试启用
Framework debugging和
Tracepoints将日志条目写入“输出”窗口,此技术对于了解奇怪的Winforms问题非常有用.
一旦你找到了你认为被过度或不必要地调用的东西,你就可以坚持一个断点并查看堆栈以查看导致问题的原因.