我想在加载应用程序时显示启动画面.但是,某些第三方组件在启动期间会阻塞主线程几秒钟,这会导致所有表单都不更新.是否可以使用自己的线程启动屏幕,这样当主线程忙时它也会更新?
该应用程序是win32和Delphi 2007版.
编辑:我正在尝试避免"未绘制的启动画面"效果,如果某些其他窗口(来自其他应用程序)位于启动画面的顶部,例如alt-tabbing到另一个应用程序并返回,则会发生这种情况.
您可以在另一个线程中运行启动屏幕,但随后您将需要使用原始Windows API调用或实现类似VCL类的第三方库(如密钥对象库).但是,不要从启动线程访问VCL内容.
如果你走这条路线(我认为你不应该这样做,因为这是一项很少有收获的工作),请务必遵守多线程的Windows API访问规则.谷歌例如为"用户界面线程"提供更多信息.
编辑:
我以前没有意识到这一点,但实际上有一个组件在CodeCentral上为Delphi实现了Threaded Splashscreen.使用这个组件它可能(没有尝试过)实际上很容易将启动画面放在不同的线程中,但是对辅助线程的VCL访问的警告仍然存在.