MSCOMM控件问题(100分)

  • 主题发起人 主题发起人 dcs_dcs
  • 开始时间 开始时间
D

dcs_dcs

Unregistered / Unconfirmed
GUEST, unregistred user!
请问 MSCOMM控件使用的是阻塞通信还是非阻塞通信?我不用事件驱动读数,而是用线程读数,但在INPUT的时候,如果收不到数据它会一直阻塞,该怎么解决 比方阻塞超过10秒就自动返回,不要一直阻塞
谢谢了,急
 
请用VCL控件。比如SPCOMM。
 
没人来看吗,自己顶了
 
var getdate:boolean = false;
tms:string[255];
procudure MSCOMM1ondata();
begin
getdate:=true;
end;

现成:
var
tmd:dword;
while not terminateddo
begin
tmd:=gettickcount()+10*1000{10s};
while tmd>gettickcount()do
begin
sleep(1);
if getdate then
begin
getdate:=false;
tms:=mscomm1.input;
exit
end;
end;

end;
 
wql
procudure MSCOMM1ondata();
是什么用途
 
看来这分又白送了。收又收不回来,送也没对象送,大富翁真的大不如前了
 
换另一个问题了,回答上来 就把分拿走
MSComm1.CDTimeout := 100;

MSComm1.Interval := 100;

MSComm1.CTSTimeout := 100;

MSComm1.DSRTimeout := 100;

分别代表什么意思。。。
 
就是MSCOMM1的接受事件,我写的只是个意思,例如udp的接受
OnGetDate事件等等!
 
wql,我都说不用事件驱动了 不要管了。回答我下面那个问题分就是你的了
 
混分,帮你结贴,^_^
 
后退
顶部