gpt4 book ai didi

c# - 启动画面+主窗口

转载 作者:行者123 更新时间:2023-12-03 13:22:04 26 4
gpt4 key购买 nike

我有一个C#应用程序,在加载主窗口之前使用启动画面时,在涉及多线程/后台工作程序时会遇到麻烦。

我的代码看起来像这样:

[STAThread]
private static void Main()
{

.. do some stuff

ShowSplash(); // where i show a splash screen and load some stuff

...

作为 ShowSplash的最后一步,我执行以下操作:
new MyCabApplication<MyMainWorkItem, MDIParentForm>().Run(); -- where i load the form through cab.

问题是当我这样做时,我得到以下异常:

在单个线程上启动第二个消息循环是无效操作。使用Form.ShowDialog代替

知道该怎么办吗?

这是我的showsplash函数:
 private static DialogResult ShowSplash(AutoResetEvent controller)
{
// create and register splash screen
splashScreen = new PointSplashScreen();
Application.Run(splashScreen);
return DialogResult.OK;
}

最佳答案

两种解决方案:

  • 无需使用Application.Run,只需创建表单的新实例,然后调用ShowDialog。调用new MyCabApplication<MyMainWorkItem, MDIParentForm>().Run();之后,将ShowDialog()移至启动画面之外。如果不总是运行此代码,则可以检查“启动”屏幕的属性。
  • 使用 Application.Run(Form) 代替使用Application.Run(ApplicationContext)。您将需要创建一个新的ApplicationContext并将代码移到该位置。

  • 解决方案1比较容易。

    关于c# - 启动画面+主窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4091878/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com