你这是多个线程操作同一个临界资源的情况,需要对多个线程使用临界资源进行互斥控制。
可以创建一个全局的TCriticalSection的实例,然后在操作临界资源以前先调用Acquire,
操作完之后使用Release释放临界资源:
如果你创建的实例为Lock,可以在线程中使用以下方法进行操作
Lock.Acquire; { lock out other threads }
try
 ...{操作临界资源的代码}
finally
  Lock.Release;
end;