如何抑制 C# 中的 thread.abort() 错误?

2023-11-24

当我的程序加载时,我在后台线程上显示启动屏幕。一旦加载,我将中止线程,因为它的唯一目的是显示“正在加载”启动画面。

我的问题是,当中止线程时,它会抛出ThreadAbortException用户只需单击“继续”即可。

我该如何处理这个问题?我试图像这样抑制它 -->

            try
        {
            Program.splashThread.Abort();
        }
        catch(Exception ex)
        {

        }

但我有一种预感,这会让我在这里大喊大叫,但无论如何都不起作用。

Thanks!


您不需要取消线程。我用代码来举例说明。

在闪屏形式中:

public void CloseSplash()
{
    Invoke((MethodInvoker)delegate
    {
        this.Close();
    });
}

在 Program.cs 文件中:

private static Splash _splash = null;
public static void CloseSplash()
{
    if (_splash!= null)
    {
        _splash.CloseSplash();
    }
}

现在,当您的 Main 方法启动时,在线程中显示启动画面:

Thread t = new Thread(new ThreadStart(delegate
{
    _splash = new Splash();
    _splash.ShowDialog();
}));

t.Start();

...当你想要它关闭时,只需关闭它即可:

Program.CloseSplash();

那么你就不需要担心中止线程;它会优雅地退出。

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

如何抑制 C# 中的 thread.abort() 错误? 的相关文章

随机推荐

  • 了解 aurioTouch2 中的 FFT

    我一直在研究 Apple 示例代码中的 aurioTouch 2 在这里找到 归根结底 我想自己分析频率 现在我正在尝试了解这里发生的一些事情 如果这是微不足道的 我很抱歉 只是想了解一些源代码中漂浮的一些未注释的神奇数字 我现在的主要困惑
  • C++ 中的内存分配区域(堆栈、堆、静态)

    我知道 C 中有三个而不是两个内存区域 堆栈 堆和静态分配功能的区域 我有两个问题 为什么堆比栈慢这么多 当然 它应该只是一个额外的间接层 为静态 功能 变量 函数 类 分配的内存区域是否比堆提供更快的性能 首先是一些旁注 正确的术语是自动
  • HTML5 音频流

    之前在 stackoverflow 上已经有过一些关于这个问题的讨论 但从我所看到的来看 没有任何东西能真正回答这个问题 我正在尝试实现一个流音频网络应用程序 与 WFMU 对他们的球员所做的几乎相同 http wfmu org html5
  • 如何使用 Three.js 获取鼠标位置?

    嗨 我正在使用Icosahedrongemetry 在那儿 我将每个顶点添加圆地测定法 因此 现在我的要求是 当鼠标向圆向圆移动时 圆应感知鼠标 并且应该向鼠标移动 因此 我在圆圈周围创建了一个铃声 因此 如果鼠标向环移动 则圆圈应感知鼠标
  • MVC 中的 P3P 标头信息

    我不确定应该将其放在我的 Asp net MVC 网站中的什么位置 HttpContext Current Response AppendHeader P3P CP IDC DSP COR ADM DEVi TAIi PSA PSD IVA
  • 承诺并订阅

    我有一个 Angular2 ionic2 应用程序 我有一个请求城市的函数 但收到一个错误 指出属性订阅不存在this cityService getAllCities cityPage ts 有一个这样的函数 getCities this
  • Python - PySpark 的 Pickle Spacy

    The Spacy 2 0 文档提到开发人员添加了允许对 Spacy 进行 pickle 的功能 以便它可以由 PySpark 接口的 Spark 集群使用 但是 他们没有给出如何执行此操作的说明 有人可以解释一下我如何pickle Spa
  • TabLayout中的Fragment仅在用户滑动Android时加载

    你好 我正在用 A 制作一个应用程序fragment和几个孩子fragment在里面使用tablayout and viewpager 问题全是我的孩子fragment from Tablayout 始终执行 每当用户单击父级时加载所有代码
  • if-let 还是普通 if 条件更好?

    例如 fn foo gt Option lt gt fn bar gt Option lt gt if let None foo lt here return None 然后我将 if 语句更改为 if None foo 而且它也有效 可以
  • 从 python 脚本启动节点应用程序

    是否可以从树莓派上的Python脚本中启动node js应用程序 在命令行上我运行sudo node myscript js 我可以使用像操作系统这样的库吗 文件的第一行应为 usr bin python 您可以使用以下命令调用命令子流程调
  • H2 SQL语法异常

    我正在尝试导入 H2 的 sql 脚本 该脚本由 spring batch 提供 用于存储作业元数据 当我直接在 H2 控制台中执行此脚本时 没有语法错误 但我在初始化阶段引用了 Hibernate JPA 中要导入的相同脚本 但出现了以下
  • 使用 Docker 和 Docker Compose 时,Cypress 无法验证该服务器是否正在运行

    我目前正在运行三个 docker 容器 用于前端 Web 应用程序的 Docker 容器 在端口 8080 上公开 后端服务器的 Docker 容器 在端口 5000 上公开 我的 MongoDB 数据库的 Docker 容器 所有三个容器
  • 当启用急切执行时,传递给 Optimizer.compute_gradients 的“loss”应该是一个函数

    我是 TensorFlow 的新手 刚刚开始学习和理解它 我正在研究neural style transfer问题 我正在使用张量流version 1 14 我收到错误当启用急切执行时 传递给 Optimizer compute gradi
  • AVMutableCompositionTrack - insertTimeRange - insertEmptyTimeRange 问题

    我有一个奇怪的问题 我想用两个声音文件和静音生成一个新的声音文件 声音1 2秒长 静音 2秒静音 声音2 2秒长 当我尝试下面的代码时 我得到了一个 6 秒长的声音文件 其中包含所有部分 但顺序不同 顺序是 声音1 声音2 静音 我无法将这
  • 动态创建并提交表单

    有办法进去吗jQuery即时创建并提交表单 像下面这样 Content Are
  • 函数局部 typedef 在 C++0x lambda 中是否可见?

    我遇到了一个奇怪的问题 以下简化代码重现了 MSVC 2010 中的问题 template
  • 在 Oracle 中定义局部变量的最简单方法是什么?

    在SQL Server中 我可以像这样定义局部变量 declare id number 1000 select from tbl A where id id select from tbl B where id id 非常方便 我尝试做同样
  • 为什么VPC中的AWS lambda函数有时会超时,有时会正常工作?

    我在 VPC 中有一些 lambda 函数 其中一些需要 Internet 才能工作 所以我添加了一个 NAT 实例 t2 micro 问题是我有一些函数有时可以工作 有时会超时 例如 调用 FB API 的函数 80 的时间工作 20 的
  • 在 Vim 中运行 Python 代码

    我正在使用 Vim 编写 Python 代码 每次我想运行代码时 我都会在 Vim 中输入以下内容 w python 这让人沮丧 所以我一直在寻找一种更快的方法来在 Vim 中运行 Python 代码 也许从终端执行 Python 脚本 我
  • 如何抑制 C# 中的 thread.abort() 错误?

    当我的程序加载时 我在后台线程上显示启动屏幕 一旦加载 我将中止线程 因为它的唯一目的是显示 正在加载 启动画面 我的问题是 当中止线程时 它会抛出ThreadAbortException用户只需单击 继续 即可 我该如何处理这个问题 我试