【发布时间】:2009-09-07 18:40:30
【问题描述】:
我有一些表单需要一些时间才能打开,因为它们目前在 Load 事件处理程序中从数据库中获取一些内容。
是否有可能以某种方式在单独的线程中加载表单并在完成后将它们显示给用户?
如果加载它们以触发 Load 事件处理程序是不可能的,也许拥有一个 IPreloadable 接口可能会使用 Preload 方法来解决问题,然后将缓慢加载的内容移入其中。如果可以从一个单独的线程中显示表单,那就是......猜我需要使用 Invoke 或类似的东西?
【问题讨论】:
-
也许我遗漏了一些东西,但您可以先 Hide() 表单,然后触发 BackgroundWorker 的 StartAsynchronous() 并在 BackgroundWorker 完成后显示表单。似乎太简单了。 :)
标签: c# winforms multithreading preloader