zoukankan      html  css  js  c++  java
  • Delphi编程防止界面卡死的方法经验分享

    Delphi编程防止界面卡死的方法经验分享!

    1.循环里面防止界面卡死的方法可以使用Application.ProcessMessages;
      例如下列方法:
        var
          n: Integer;
        begin
          for n := 0 to 10000 do
          begin
            Edit1.Text := IntToStr(n);
          end;
        end;
      在程序里执行的时候,界面肯定会卡死的,但如何防止界面出现卡的情况呢,加入Application.ProcessMessages即可,修改后的代码为:
        var
          n: Integer;
        begin
          for n := 0 to 10000 do
          begin
            Application.ProcessMessages;
            Edit1.Text := IntToStr(n);
          end;
        end;
      这样运行的时候界面就不卡了!Application.ProcessMessages会转移程序控制权,使用的时候根据情况来选择!

    2.网络程序在连接通信的时候出现界面卡死
      此时可以使用indy自带的一个控件来解决问题TIdAntiFreeze,在连接或者通信之前按照下列方法加入代码;
        procedure TForm38.Button1Click(Sender: TObject);
        begin
          IdAntiFreeze1.OnlyWhenIdle:=False;
          IdTCPClient1.Host:='192.168.13.89';
          IdTCPClient1.Port:=3456;
          IdTCPClient1.Connect;
        end;

    3.处理大量数据,但对于后续的操作不相干的情况下可以将处理数据交给子线程来做,那么线程也可以解决界面卡死的情况,这里就不举例子了,在线程里写代码的方法和主线程里写法一样,只是注意下同步就行了。

  • 相关阅读:
    方法集锦3_字符串_python
    171. 乱序字符串
    149. 买卖股票的最佳时机(回顾)
    150. 买卖股票的最佳时机 II
    平方根的计算
    平方根的计算
    对话Roadstar投资人:一家自动驾驶公司之死(三) ...
    对话Roadstar投资人:一家自动驾驶公司之死(三) ...
    Axure遮罩 or 灯箱
    Axure遮罩 or 灯箱
  • 原文地址:https://www.cnblogs.com/jijm123/p/9621262.html
Copyright © 2011-2022 走看看