▲◎如何解决从窗体关闭到程序停止,程序运行时间长的问题

时间:2022-06-21 23:47:52

我新增的子窗体,刚开始代码少的时候,关闭子窗体,再关闭父窗体,程序瞬间就停止;到现在代码量能有2000行左右,我现在关闭子窗体,再关闭父窗体,程序就跟死了似的,过了有1分钟左右才能正式停止,我知道肯定是我程序哪里出了问题,可不知道一般出现这种问题都是由于什么类型的原因导致的,哪位知道能否相告?非常感谢!!

13 个解决方案

#1


高手帮忙阿~~~~~~~~~~

#2


检查一下你的窗体关闭,写了些什么耗时的代码

#3


没有啊,我的窗体关闭,就做了动态数组的清空

#4


我靠,厉害,从来没遇到这种问题,UP。

#5


只能用排除法一点点调试了

#6


怎么清空动态数组的?

#7


贴出关闭代码

#8


for I := 0 to MainForm.MAX_JUKEBOX - 1 do begin
       if Length(JukeBoxArray) <> 0 then begin
         if(JukeBoxArray[I]=nil) then
            continue;
         JukeBoxArray[I]:=nil;
       end
       else
          break;
  end;

#9


我也不知道对不对,反正是这么做的,唉,愁死了,大家帮帮忙吧

#10


JukeBoxArray是什么类型的?  有必要这么做吗

#11


是我做的动态数组,我也不知道有没有必要,我看别人的代码是这么做的,可别人的代码就耗用,我这里就出现这种情况,晕

#12


先看看你的JukeBoxArray是多少,如果是一天文级数字,那也有可能……

#13


今天调试,这个问题莫名其妙的好了,不管如何,谢谢大家的帮忙,给分喽

#1


高手帮忙阿~~~~~~~~~~

#2


检查一下你的窗体关闭,写了些什么耗时的代码

#3


没有啊,我的窗体关闭,就做了动态数组的清空

#4


我靠,厉害,从来没遇到这种问题,UP。

#5


只能用排除法一点点调试了

#6


怎么清空动态数组的?

#7


贴出关闭代码

#8


for I := 0 to MainForm.MAX_JUKEBOX - 1 do begin
       if Length(JukeBoxArray) <> 0 then begin
         if(JukeBoxArray[I]=nil) then
            continue;
         JukeBoxArray[I]:=nil;
       end
       else
          break;
  end;

#9


我也不知道对不对,反正是这么做的,唉,愁死了,大家帮帮忙吧

#10


JukeBoxArray是什么类型的?  有必要这么做吗

#11


是我做的动态数组,我也不知道有没有必要,我看别人的代码是这么做的,可别人的代码就耗用,我这里就出现这种情况,晕

#12


先看看你的JukeBoxArray是多少,如果是一天文级数字,那也有可能……

#13


今天调试,这个问题莫名其妙的好了,不管如何,谢谢大家的帮忙,给分喽