关于线程的简单问题,求助啊
procedure TUploadThread.Execute;
begin
while not Terminated do
begin
try
Print.Throwdata;
sleep(120000);
finally
end;
end;
end;
代码如上。
在执行 Print.Throwdata; 这句的时候, 如果Print.Throwdata这个事件没错,线程就会一直运行着,但当Print.Throwdata有错的时候,线程就终止了,再不执行了。能有什么方法,能让Print.Throwdata有错的时候,也不会终止线程,让它继续工作呢。
[解决办法]
procedure TUploadThread.Execute;
begin
while not Terminated do
begin
try
try
Print.Throwdata;
except
end;
sleep(120000);
finally
end;
end;
end;
[解决办法]
try
Print.Throwdata;
except
在这里向主线程发送一个消息,让主线进行处理是否再次开启线程。
发消息的方法你参考论坛的置顶文章就可以。
这是一个长时间工作线程
建义你查查你的Throwdata,为什么会导至线程挂掉!
end;
[解决办法]
屏蔽不是上上之先,找出错误处理掉才是根治
只是连接服务器,可以设置一个检测标记,做个循环定时的去连接,连接成功或者连接N次也不成功再退出循环
[解决办法]
异常保护,同意#1