C# Winforms 在单个线程上启动第二个消息循环不是有效的操作。使用 Form.ShowDialog 代替

2024-03-24

摘要: 我的申请从许可证验证表格开始,并确定客户的许可证是否有效。它应该启动主窗体。

但是我收到以下错误:在单个线程上启动第二个消息循环不是有效的操作。请改用 Form.ShowDialog。

我的实现:

static class Program
{
    static AppStartUp appStartUp_;

    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        appStartUp_ = new AppStartUp();
        appStartUp_.OnValidationSuccessful += OnValidationSuccessful;

        Application.Run(appStartUp_);
    }

    static void OnValidationSuccessful()
    {
        appStartUp_.OnValidationSuccessful -= OnValidationSuccessful;
        appStartUp_.Close();
        appStartUp_.Dispose();

        //Application.ExitThread();
        Application.Run(new Manager());
    }
}

我做错了什么吗?


您的第一个 Application.Run 在 OnValidationSuccessful 事件期间仍在运行。假设该事件正在关闭表单,请尝试设置一个变量:

static bool appOK = false;

然后在你的事件中,将其设置为 true:

static void OnValidationSuccessful()
{
  appOK = true;
}

那么在你的主程序中,它看起来像这样:

Application.Run(appStartUp_);
if (appOK) {
  Application.Run(new Manager());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# Winforms 在单个线程上启动第二个消息循环不是有效的操作。使用 Form.ShowDialog 代替 的相关文章

随机推荐

  • 如何将两个 AngularJS 应用程序合并为一个主应用程序的模块?

    另一个基本的 AngularJS 问题 我有两个 AngularJS 应用程序 slider js 角度用户界面 json js Here s slider js作为一个笨蛋 http plnkr co edit zySArHvqZgJHH
  • SVN 并重命名其运行的服务器

    我运行 VisualSVN 作为我的 SVN 服务器并使用 TortoiseSVN 作为客户端 我刚刚将服务器从 mach1 重命名为 mach2 现在无法使用 SVN 因为它正在寻找以下位置的存储库http mach1 81 http m
  • 概率密度函数 numpy 直方图/scipy stats

    我们有数组a range 10 Using numpy histogram hist bins numpy histogram a bins np max a np min a 1 range np min a np max a densi
  • Google Chrome 开发者工具中的自定义堆栈跟踪?

    我希望自定义 Google Chrome 开发人员工具 脚本 选项卡中 strack 跟踪面板中显示的项目 具体来说 我想过滤掉堆栈跟踪中的项目 并向堆栈跟踪中的某些项目添加更多描述性名称 而不必重命名我的对象和函数 我在以下位置找到了 V
  • 关闭 VTK 窗口 (Python)

    考虑以下脚本 import vtk ren vtk vtkRenderer renWin vtk vtkRenderWindow renWin AddRenderer ren iren vtk vtkRenderWindowInteract
  • Linux内核如何中断应用程序?

    首先 我是一名设备驱动程序人员 这是我第一次处理用户模式程序 我曾经有一个中断服务程序来响应硬件中断 换句话说 硬件使用中断服务程序来通知驱动程序进行服务 我现在使用 ioctl 作为应用程序和设备驱动程序之间通信的通道 并轮询它以等待响应
  • 清单中的飞行模式接收器?

    我正在开发一个 Android 应用程序 该应用程序将在工业环境中用作手持控制器 为了让平板电脑不太适合带回家 我本来打算一直尝试以编程方式打开飞行模式 但这在 4 2 中已被弃用 这也是我们为了拥有 Android Open Access
  • 如何在远程机器上运行本地python脚本

    我的本地计算机上有一个 python 脚本 有什么方法可以在远程计算机上运行此脚本 我的意思是 python 脚本应该在本地计算机上 但执行应该发生在远程计算机上并将输出返回到本地计算机 The pathos软件包中的工具可以让您轻松地与远
  • 如何根据具有相对位置的共享库构建nodejs C++插件

    我正在尝试使用构建一个node js C node gyp但不知道如何指定 Wl rpath ORIGIN这样当从节点加载时 它可以找到与以下目录位于同一目录中的共享对象库addon node 我尝试过设置我的binding gyp像这样
  • 删除 div 元素之间的“空白”

    这是我的 HTML 代码 div div div div div div div br div div div div div div div My CSS div1 width 150px height 100px white space
  • 如何在 Gitlab CI 中捕获结构化 xUnit 测试输出?

    我正在 Gitlab CI 上的 NET Core 代码库上运行自动化测试 这些测试的唯一输出是控制台 其中包含大量垃圾 并且很难准确看出哪些测试失败了 有没有一种方法可以从 xUnit 获取结构化测试输出 以便 Gitlab 可以处理文件
  • MVCrazorToPdf (iTextSharp) 使用自定义字体

    我正在尝试使用 nuget 包 MVCRazorToPdf 将自定义字体添加到我的 pdf 输出中 但我在如何执行此操作时遇到了麻烦 因为 iTextSharp 的文档不是很好 而且所有内容似乎都已过时 我当前用于创建pdf的代码是 ret
  • 数据库设计 - 多个实体的类似联系信息

    我意识到这些类型问题的答案通常是 视情况而定 但我仍然想知道普遍的共识可能是什么 我正在与多个实体打交道 例如 Company Charity Auditor 盘点员 等等等等 其中都有联系信息 例如电子邮件 电话和地址 我想存储联系信息的
  • 我应该如何重新创建 iOS 主屏幕打开文件夹动画?

    起初我以为这不会太难 但事实证明它比我想象的要复杂一些 目前我的代码基于此 https github com jwilling JWFolders https github com jwilling JWFolders 然而 它不是很干净
  • 如何使用 Golang 包以外的名称构建可执行文件

    是否可以构建 安装 获取等 名为的可执行文件foobar如果我的 Golang 包名称是以下之一 github com username go foobar github com username foobar tools and has
  • AngularJS:如何在角度应用程序中嵌套应用程序

    我一直在开发一个更像框架的项目 并且有多个可以安装的应用程序 模块 将其视为基本的应用商店或 google play 商店 它有点像一个内联网应用程序 所有模块都可以添加到您的用户帐户中 该框架已经在开发中 但我现在正在考虑应用程序 模块的
  • 打字稿删除可选属性

    我正在尝试为构建器构建动态类型 export type Builder
  • 处理 FIX 拒绝:使用 QuickFix/J 按 RefSeqNum 中的序列号检索 FIX 消息

    我正在尝试处理修复拒绝 MsgType 35 3 但我不清楚如何检索 FIX Reject 消息引用的消息 FIX Reject 是指被拒绝的消息MsgSeqNum 在里面RefSeqNum字段 标签 45 但是我不知道如何通过序列号获取被
  • Gmail API 与 iOS - 获取电子邮件

    我试图理解如何邮箱API https developers google com gmail api 作品 我的目标是检索用户收件箱中所有电子邮件的列表 下载到NSArray 目前工作流程似乎如下 使用 OAuth 2 0 授权我的 iOS
  • C# Winforms 在单个线程上启动第二个消息循环不是有效的操作。使用 Form.ShowDialog 代替

    摘要 我的申请从许可证验证表格开始 并确定客户的许可证是否有效 它应该启动主窗体 但是我收到以下错误 在单个线程上启动第二个消息循环不是有效的操作 请改用 Form ShowDialog 我的实现 static class Program