我有一个简单的程序,可以根据每行单词的长度对文本文件进行排序,这个程序在我基于 xp 的旧机器上运行没有问题现在我在我的新 win7/intel core i5 机器上运行这个程序,它冻结整个系统并恢复正常完成后它的工作。
我调查了代码并找到了导致冻结的行
就是这条特定的线...
caption := IntToStr(i) + '..' + IntTostr(ii);
我已将其更改为
caption := IntTostr(ii); //slow rate change
并且没有冻结
然后我把它改成了
caption := IntTostr(i); //fast rate change
它再次冻结
我的程序代码是
var tword : widestring;
i,ii,li : integer;
begin
tntlistbox1.items.LoadFromFile('d:\new folder\ch.txt');
tntlistbox2.items.LoadFromFile('d:\new folder\uy.txt');
For ii := 15 Downto 1 Do //slow change
Begin
For I := 0 To TntListBox1.items.Count - 1 Do //very fast change
Begin
caption := IntToStr(i) + '..' + IntTostr(ii); //problemetic line
tword := TntListBox1.items[i];
LI := Length(tword);
If lI = ii Then
Begin
tntlistbox3.items.Add(Trim(tntlistbox1.Items[i]));
tntlistbox4.items.Add(Trim(tntlistbox2.Items[i]));
End;
End;
End;
end;
知道为什么吗?以及如何解决?我使用德尔福 2007/win32