¿Tu sistema de qué??
Bueno para cerrar un thread simplemente guarda su 'Handle' y usa la api terminatethread por ejemplo:
Código Delphi
[-]
var
threadid: LongWord;
procedure hilo;
begin
repeat
messageboxa(0, pchar('test'), '', 0);
Sleep(1000);
until 1 = 2;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
threadid := BeginThread(nil, 0, addr(hilo), nil, 0, threadid);
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
TerminateThread(threadid, 0)
end;
Si lo que quieres es evitar que se cierren tendrás que mirar de localizar si la ID se ha cerrado y reabrirlo.
Sin contar que también pueden editar la memoria y hacer 1000 cosas más....
En cierto modo te es prácticamente inútil esa medida por lo comentado anteriormente, te recomiendo mirar de evitar cambios en la memoria.