多线程问题

tjj5203 2009-12-25 07:21:41
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赋值,这个是为什么啊??想不通啊
...全文
88 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjj5203 2009-12-26
  • 打赏
  • 举报
回复
50分仍了多可惜啊,终于把你等来了
qkhhxkj102 2009-12-26
  • 打赏
  • 举报
回复
看不太懂楼主的意思

要是之线程,我认为不是把关健代码用一个零界区包含下吧
tjj5203 2009-12-25
  • 打赏
  • 举报
回复
怎么没人呢,自己顶个

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧