线程函数中抛出异常怎么处理 ( 积分: 100 )

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

dalmatians

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure proc1;
begin
raise Exception.create('error');
end;

type
Thread1 = class(Thread)
procedure execute;
end;

procedure Thread1.execute;
begin
proc1;
end;
 
try
except
end
 
请大家试一试,会出现锁定的问题
 
请大家帮帮忙,在线等。
这个问题我处理不了了,调用别的函数时,如果被调用函数抛出异常,会出现锁定问题
 
嗯,这个问题我也遇过,最后我用Synchronize解决,期待高手更好的解决办法.[:)]
 
用try except应该能解决的!...
 
显示信息CPU就停止该县城!
 
用try except就可以解决你的问题了。
如果你的那个函数proc1中对可视控件的操作,那你必需进行同步。
与窗口线程同步用Synchronize是一种方法,还可以用事件来进行。
如果你的那个函数是独占的函数,在同一时间只能有一个线程执行,你可以用临界区。
我做了个Demo,是关于线程中使用事件与窗口交互,和临界区的使用的,需要的可以用留下Email。
 
后退
顶部