我用多个线程向数据库里添加记录,怎么使用 临界区 让它们同步,
谢谢!

解决方案 »

  1.   

    所谓的临界区就是一个瓶颈。每一时刻只能由一个线程使用。比如你写了一个网数据库里添加数据的方法AddRecord。而且你的数据库不支持多线程的输入。那么你的AddRecord可以这么写:uses Windows;...var
      cs : TCriticalSection;procedure AddRecord(data : TXXX);
    begin
      cs.Enter;
      try
        //写入数据
      finally
        cs.Free;
      end;
    end;initialization
      cs := TCriticalSection.Create;finalization
      cs.Free;当有线程执行cs.Enter的时候,如果别的线程正在占用这个临界区,那么cs.Enter会一直等到别的线程释放这个临界区的时候才返回。
      

  2.   

    initialization
      cs := TCriticalSection.Create;finalization
      cs.Free;应该写在哪里