為何在線程中無法關閉程序?该怎么解决

為何在線程中無法關閉程序?
為何在線程中無法關閉程序?

procedure   thread1;
begin
...
.......
if   close=true   then     //當close為true時
begin
winexec(pchar(application.exename),sw_normal);   //重啟自身程序
application.Terminate;     //退出程序     //這一動作失效,程序沒有退出
end;
end;

h:=beginthread(nil,0,@thread1,nil,0,hid);

------解决方案--------------------
不能在线程中结束程序。但是尝试:
当要结束程序时,先结束线程,然后返回给程序一个布尔。程序决定是否关闭