| destructor TxxThread.Destroy;begin
 //下面这段话...到结束 如果不加的话,exe关闭时就出错,加的话,又退不出来 ,请版主看看
 if ModuleIsLib then
 begin
 if not FreeOnTerminate then //判断是不是结束时退出
 begin
 FreeOnTerminate := true;   //让结束时退出
 WaitFor;                            //暂先不退出,等待这个线程的事情结束后由于FreeOnTerminate := true会再次触发 Destroy 以便执行下面代码
 Exit;
 end;
 end;
 //结束
 Terminate;
 PMessages;
 WaitFor;
 inherited;
 end;
 
 这是rem内的,怎么改都退不出来,我只好把多线程的这块分出来,不放在bpl内,其它的合做成一个静态包bpl
 以前不相信多线程不能打包到bpl内,通过自己做才相信了这点,不是退不出来,就是内存报错,
 注:这段代码放在exe内,不会报错
 
 [ 本帖最后由 niaoge 于 2007-8-29 01:32 编辑 ]
 |