我用互斥实现线程同步
我的同步有问题,帮我看下
    MYThread := TDPThread.Create(True);
    CoInitialize(nil);
    CopyMemory(@MYThread.iFramInfo,Pointer(Integer(@SerialQueue.receiveByte)+pos),Endpos-pos+2);
    MYThread.FreeOnTerminate := true;
    MYThread.Resume ;procedure TDPThread.Execute;
begin
  inherited;
  
  Mutex := CreateMutex(nil,False,'NewMutex') ;
  WaitForSingleObject(Mutex,INFINITE) ;
  for i:= 1 to cardCount do
  begin
    if ConvertTo(cardByteInfo) then  //卡信息转换正确
    begin
      if cbJoinRecordToDB.Checked then //归并后的记录是否入库
      begin
        if CardIsExist(cardConvertFormat,DModule.ADOConnection1) then  //该卡的信息已存在
            UpdateAccess(cardConvertFormat,DModule.ADOConnection1)
        else
            InsertToAccess(cardConvertFormat,'T_ActCard',DModule.ADOConnection1);
      end ;
      if cbOrigRecordToDB.Checked then     //是否保存原始记录
           InsertToAccess(cardConvertFormat,'T_ActCardRecord',DModule.ADOConnection1);  //每条记录都入库      if ScbShowCardInfo.Checked then  //是否显示卡的信息
        tempStr := ShowCardInfo(cardConvertFormat) + tempStr ;
    end  ;
  end ;
  ReleaseMutex(Mutex) ;
  CloseHandle(Mutex) ;
end;
现在是:   第一帧,卡A,B,C    ;   第二帧,卡A,D,F  ;数据库中可能会出现两条A 的记录,应该只有一条,第二次的会更新第一次的