1

我有一个程序在一个单独的线程上以非常长的循环进行大量计算。逐步完成此代码将花费很长时间。例如,在我当前的问题中,我对 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;

现在这行得通。有时。如果我调用此分配,它将在随机时间间隔随机崩溃。线程只是停止工作。没有弹出错误或任何东西。如果我删除所有被调用的地方,我不会收到任何错误,并且线程会继续计算。

有谁知道为什么这会导致我的线程自行杀死它。

4

0 回答 0