新手请教,这段代码的保护措施该怎么设置 ( 积分: 5 )

  • 主题发起人 主题发起人 huanghuang612
  • 开始时间 开始时间
H

huanghuang612

Unregistered / Unconfirmed
GUEST, unregistred user!
我是将主进程中串口接收到的字符写到strlist:Tstringlist中,再另一个线程中取出strlist.Strings[0]的内容进行处理后再进行strlist.Delete(0);操作,系统运行是有时没报错,有时报“List index out of bound(0) ” ,估计是代码中未进行保护,请各位高手指点一下。
//串口接收字符
procedure TFrm_Main.Comm1RxChar(Sender: TObject;
Count: Integer);
begin
comm1.ReadStr(RecStr,Count);
strlist.Add(RecStr);
end;

//线程执行代码
procedure ReceiveThread.Execute;
var str:string;
begin
while not terminateddo
begin
if Frm_Main.strlist.Count>0 then
begin
str:= Frm_Main.strlist.Strings[0];
Frm_Main.strlist.Delete(0);
Frm_Main.ProcessRecStr(str);
end
else
begin
Frm_Main.RzStatusPane1.Caption := '二级缓存中没有数据包';
sleep(500);
end;
end;
end;
 
分好象太少了???????????
 
已经是我的所有分值,不要嫌弃
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
550
import
I
I
回复
0
查看
806
import
I
后退
顶部