zoukankan      html  css  js  c++  java
  • C# winform程序防止前台卡死

    https://blog.csdn.net/Emiedon/article/details/51069193

    在实际开发中,如果需要实时的显示后台处理的情况,我们可能要在前台用一些控件去显示

    所以我们可能会写诸如label1.text=...,button1.hide();等等这样的代码,但是我们会发现并不会立刻显示,作为一只菜鸟,我不清楚是怎么回事,但是我找到了一个解决办法

    Application.DoEvents()

    这个命令可以立即刷新前台,所以可以在程序代码里的适当位置添加,可以模拟出同步的感觉,但是因为这个过程比较耗时,所以会给计算性能带来一些影响,还是慎重使用吧

    https://bbs.csdn.net/topics/380001753

    Application.DoEvents();
    这个是继续执行主线程操作

    /// <param name="i">时间 单位:秒</param>
            private void dealTimer(int i)
            {
                DateTime dt1 = DateTime.Now; // 获取当前时间
                DateTime dt2;
                int diff = 0;
     
                while (diff < i)
                {
                    dt2 = DateTime.Now;
                    TimeSpan ts = dt2.Subtract(dt1);
                    diff = (int)ts.TotalSeconds;
                    Application.DoEvents();
                }
            }
     
    我自己写的
     if (cts.Token.IsCancellationRequested)
                        {
                            Console.WriteLine("线程被终止!");
                            break;
                        }
                        Application.DoEvents();
  • 相关阅读:
    勒布朗法则( LeBlanc)
    [转]五分钟看懂UML类图与类的关系详解
    单片机裸机下写一个自己的shell调试器(转)
    S3C2440 偷学
    LWIP_STM32_ENC28J60(转)
    写出稳定的Modbus代码之点滴经验
    GPS数据解析
    U-BLOX GPS 模块及GPRMC指令解析
    LwIP之socket应用--WebServer和Modbus TCP
    LWIP使用经验---变态级(转)
  • 原文地址:https://www.cnblogs.com/LuoEast/p/9112687.html
Copyright © 2011-2022 走看看