我有一个程序在一个单独的线程上在非常长的循环中进行大量计算。虽然这个代码将会永远存在。例如,在我目前的问题中,我对100K迭代后发生的循环感兴趣。我没有我感兴趣的特定循环,并且对一系列循环更感兴趣。
不打击这个我写了以下功能:
procedure TDLLMainAncestor.printtotext(line:string; name : string = '' );
var
i : integer;
myFile : TextFile;
begin
PDebugFilename := IconDescription +'.txt';
if name <>'' then PDebugFilename := name + '.txt';
AssignFile(myFile, PDebugFilename);
if (FileExists(PDebugFilename)) then
append(myFile)
else
ReWrite(myFile);
Writeln(myFile, line);
CloseFile(myFile);
end;
现在这个有效。有时。如果我打电话给这个分配,它将随机地随机崩溃。线程停止工作。没有弹出错误或任何东西。 如果我删除所有这些被调用的地方,我没有错误,并且线程一直在计算。
有没有人知道为什么这会导致我的线程自杀它。