while TRUE do
  begin
    if mConnect=0 then//未打开设备
    break;
    {if SendMark=False then
    Continue; }
    Sleep(1);
    len:=VCI_Receive(DevType,DeciveIndex,CanIndex,@ReceiveData[0],50,200);
    if len<=0 then
    begin
      VCI_ReadErrInfo(DevType,DeciveIndex,CanIndex,@ErrInfo);
      continue;
    end;
    for i:=0 to len-1 do
    begin
      if mConnect=0 then Break;//这句放这里没错
      PRecevieData:=@ReceiveData[i];
      SendMessage(CanMainForm.Handle,MyMessage,1,LPARAM(PRecevieData));
      //if mConnect=0 then Break;//放这里出现内存泄露
    end;
    EnterCriticalSection(CS);
    Inc(RecvNum,len);
    LeaveCriticalSection(CS);
  end;
在主线程给mConnect赋值,这个是为什么啊??想不通啊