C#跨线程刷新前台UI

        在WinForm中编程时,如果我们直接在主进程中进行计算的话就会直接卡死UI线程,这样的话用户体验会非常差,但是直接在后台运算的话由无法给用户一个直接的反馈。如何才能做到异步计算+前台刷新呢,有以下几种方法供大家参考。

一、直接屏蔽线程之间的检查

        这是最偷懒的办法,因为C#会检查不同线程之间调用进程,默认状况下这种操作可能造成不安全现象,所以是被禁止的,诞生我们可以向init函数中添加一行代码解除限制。

Control.CheckForIllegalCrossThreadCalls = false;//取消线程间的安全检查

二、使用定时器

        定时器可以实现一定时间允许特定代码,相当于轮询,我们可以通过在计时器中放置代码来做到后台运算+前台更新。

        但是需要注意的是计时器如果触发过于频繁还是可能造成前台卡顿甚至无法移动(触发时间过短/定时器过多)

Timer tm = new Timer(); //初始化定时器
tm.Interval = 10;        //定时器时间间隔
tm.Tick += Tm_Tick;      //设置定时器触发事件
tm.Start();              //启动定时器
private void Tm_Tick(object sender, EventArgs e)
{
    //需要执行的代码
    tm.Stop();    //终止定时器
}

三、使用异步

        此方法是最为便捷和安全的方法,很推荐大家使用

            new Task(new Action(() =>
            {

                this.Invoke(new Action(() =>
                {
                    //需要执行的代码
                }));

            })).Start();

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
c是C语言(C programming language)的简称。C语言是一种结构化的、高级的、通用的程序设计语言,由贝尔实验室的Dennis Ritchie在1972年发明。C语言具有简洁、高效、可移植等特点,被广泛应用于系统软件、嵌入式软件和应用软件的开发中。 C语言的语法简洁明了,易于学习和理解。它提供了丰富的程序控制结构,可以实现条件判断、循环迭代等功能,使程序的编写更加灵活。 C语言的编译过程也相对简单。C语言程序需要经过编译器(如GCC)的编译之后才能执行,编译器将C语言代码转换成机器码,然后在计算机上运行。这种编译方式使得C语言程序的执行效率较高,适合开发对性能要求较高的应用。 C语言具有良好的可移植性。由于C语言是面向过程的编程语言,不依赖于特定的硬件平台和操作系统,因此C语言程序可以在不同的计算机系统上进行移植,提高了开发效率和软件的可复用性。 C语言在各个领域都有广泛的应用。它可以用于开发操作系统、数据库管理系统、编译器等系统软件;还可以用于开发嵌入式系统的驱动程序、控制程序等;同时也可以用于开发各种应用软件,如游戏、办公软件、图像处理等。 总之,C语言是一种非常重要且有影响力的编程语言,它的简洁性、高效性和可移植性使得它在计算机领域拥有广泛的应用。对于想要学习编程的人来说,掌握C语言是一个很好的入门选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值