首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

线程的有关问题

2012-06-06 
线程的问题procedure TMyThread.Executebeginwhile not Terminated do begintryCheckNet(FSocket)// 使

线程的问题
procedure TMyThread.Execute;
begin
  while not Terminated do begin
  try
  CheckNet(FSocket); // 使用FSocket(TIdUDPClient)和服务器通讯,很简单一问一答。

  if not FNetIsOK then // FNetIsOK 是一个变量,在CheckNet中会改变值
  FNetStatus := '与前端设备连接状态:异常'
  else
  FNetStatus := '与前端设备连接状态:正常';

  Synchronize(ShowNetStatus); // 显示网络状态
  except
  end;
  end;
end;

现在的问题是,当运行着好好的时候我把网线拔掉(模拟断网了),程序就莫名奇妙,根本显示不了我想要的“异常”。线程也终止不了了。咋回事?

[解决办法]
CheckNet产生异常了?
[解决办法]
关键在CheckNet里面
[解决办法]
IdUDPClient 是无连接协议 
网线拔不拔掉 并不影响程序
 UDP包发送出去就不管了 
你要自己判断 多长时间 没有信息返回 就认为断线 修改FNetIsOK 值
 

热点排行