在线程里进行数据库操作的问题。(200分)

  • 主题发起人 主题发起人 Anubis99
  • 开始时间 开始时间
A

Anubis99

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TSelfCheckThread.Execute;
begin
while not Terminateddo
begin
do
Check;
Sleep(1000);
application.ProcessMessages;
end
end;
DoCheck是把我TList中的数据读出来写入数据库,但是如果在写数据库的过程中,出现异常会导致线程断掉(在进行数据库操作时我使用了Try except),我想问一下,怎么将判断线程中断了,或者怎么防止这种情况。谢谢。
 
判断线程的Terminated属性啊。
DoCheck中的异常是无法防止的,你无法知道会发生什么。
 
在出现异常时向主线程发消息
procedure TSelfCheckThread.Execute;
begin
while not Terminateddo
begin
try
do
Check;
except
sendmessage(mainhandle,wm_yourmsg,0,0);
end;
Sleep(1000);
application.ProcessMessages;
end
end;
 
try
do
Check;
except
sendmessage(mainhandle,wm_yourmsg,0,0);
 
后退
顶部