我有一个程序在一个单独的线程上以非常长的循环进行大量计算。逐步完成此代码将花费很长时间。例如,在我当前的问题中,我对 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;
现在这行得通。有时。如果我调用此分配,它将在随机时间间隔随机崩溃。线程只是停止工作。没有弹出错误或任何东西。如果我删除所有被调用的地方,我不会收到任何错误,并且线程会继续计算。
有谁知道为什么这会导致我的线程自行杀死它。