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赋值,这个是为什么啊??想不通啊
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赋值,这个是为什么啊??想不通啊
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货