我们有一个 SWT 应用程序,它在按下按钮时进行耗时的计算,然后打开一个新窗口。计算是在 UI 线程中完成的(这不是很好,但它是一个遗留应用程序),因此在操作期间窗口被冻结。通常在作业完成后,新窗口会正确重绘。但是,如果应用程序在 Windows 7 上运行,并且我使用 Windows 远程桌面连接到该计算机,则在完成操作后,新窗口有时无法正确绘制。当我执行以下操作时会发生这种情况:
- 按下计算按钮
- 切换到与我的应用程序重叠的另一个窗口
- 切换回我的应用程序(仍然没有响应)
- 等待计算完成。
- 新窗口打开,但内容未正确绘制。
最小化和恢复窗口后,重新绘制正确完成。
一种解决方案是在远程桌面设置中设置最大详细信息。但这需要太多带宽。
我使用 SWT 版本 3.4.1、3.6.1 和 4.2.1 以及来自 XP->Windows 7 以及 Windows 7->Windows 7 的远程连接进行了测试。