为了账号安全,请及时绑定邮箱和手机立即绑定

C#中的多线程启动画面?

C#中的多线程启动画面?

海绵宝宝撒 2019-10-06 15:01:05
我希望在加载应用程序时显示启动屏幕。我有一个与系统托盘控件绑定在一起的表单。我希望在加载此表单时显示启动屏幕,这需要一些时间,因为它正在访问Web服务API来填充一些下拉菜单。我还想在加载之前对依赖项进行一些基本测试(即,Web服务可用,配置文件可读)。随着启动过程的各个阶段的进行,我想用进度更新初始屏幕。我已经阅读了很多有关线程的文章,但是我对应该从哪里控制(main()方法?)感到迷茫。我也缺少Application.Run()工作原理,这是应该从中创建线程的地方吗?现在,如果带有系统任务栏控件的表单是“活动”表单,那么飞溅应该从那里来吗?反正要等到表格完成才加载吗?我不是在寻找代码讲义,更多是算法/方法,所以我可以一劳永逸地解决这个问题:)
查看完整描述

3 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

好吧,对于我过去部署的ClickOnce应用程序,我们使用Microsoft.VisualBasic名称空间来处理启动屏幕线程。您可以Microsoft.VisualBasic在.NET 2.0中引用和使用C#中的程序集,它提供了许多不错的服务。


具有主要形式继承自 Microsoft.VisualBasic.WindowsFormsApplicationBase

覆盖“ OnCreateSplashScreen”方法,如下所示:


protected override void OnCreateSplashScreen()

{

    this.SplashScreen = new SplashForm();

    this.SplashScreen.TopMost = true;

}

非常简单,它会在加载过程中显示您的SplashForm(您需要创建),然后在主窗体完成加载后自动将其关闭。


这确实使事情变得简单,并且VisualBasic.WindowsFormsApplicationBase经过Microsoft的严格测试,并且具有许多功能,即使在100%C#的应用程序中,也可以使您在Winforms中的工作变得更加轻松。


归根结底,都是IL bytecode,所以为什么不使用它呢?


查看完整回答
反对 回复 2019-10-06
  • 3 回答
  • 0 关注
  • 553 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信