关于Tlist的同步问题多线程操作Tlist,想吧Tlist作为一个队列来处理,每次写入的对象在Tlist的末尾取的时候是Tlist的第一个Tlist[0]用什么方法来控制写和读不会同时发生呢?最好有代码解决后马上给分~~~

解决方案 »

  1.   

    var
    pLockXY CRITICAL_SECTION;EnterCriticalSection(pLockXY);
    try
       //read/write
    finally
       LeaveCriticalSection(pLockXY);
    end;
      

  2.   

    多谢楼上  unsigned 兄~~~由于我做DELPHI不久,还不太熟悉,上面的 EnterCriticalSection  这类函数是DELPHI自己的吗?还是自己写的?如果我的写线程在写的时候发现 读线程正在读取(读完后会把已读的元素删除),写线程是自动等待读结束后在写吗?或者就直接跳过了?
      

  3.   

    用TThreadList
    var
      t: TThreadList;
    begin
      t := TThreadList.Create;
      with t.LockList do
      try
        //取置Items[0]
      finally
        t.UnlockList;
      end;
    end