If your containing object "frees [the thread] in it's destructor", then you are taking responsibilty for the destruction of the thread. Thus you should set FreeOnTerminate to False.
If you want FreeOnTerminate to be True, then you should only terminate the thread, and not free it. Of course, if the thread accesses objects that die along with the container object then you will get access violations. To ensure that you free the thread only after it has completed execution, you could use: aThread.Create(Suspended); aThread.FreeOnTerminate := False; aThread.Resume; ... aThread.Terminate; aThread.WaitFor; //Or whatever it is.. aThread.Free; This will ensure that the thread completes execution before it is freed. The thread that is executing the above code will block until the target thread ceases execution. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Phil Middlemiss Sent: Wednesday, August 25 2004 9:23 a.m. To: [EMAIL PROTECTED]; NZ Borland Developers Group - Delphi List Subject: Re: [DUG] Threads I've played with setting FreeOnTerminate to False, but in that case I have to manually call Terminate and also manually Free the object - it's a reusable component and I don't want any other components to have to do anything special other than Terminate the thread. Phil. ----- Original Message ----- From: "Sandeep Chandra" <[EMAIL PROTECTED]> To: "NZ Borland Developers Group - Delphi List" <[EMAIL PROTECTED]> Sent: Wednesday, August 25, 2004 8:51 AM Subject: Re: [DUG] Threads > Hi Phil > > Try setting FreeOnTerminate to false if you want to free threadobject > yourself. > > Regards > > Sandeep > > >Hi all, > > > >I have a thread object that, for some reason, the destructor is being called > >twice. I've stripped the app down to a fairly simple shell around the thread > >and all I am doing is creating the object that holds onto the thread, and > >then freeing it. The containing object creates the thread in it's > >consctructor and frees it in its destructor. Any one know what is causing > >this? > > > >Cheers, > >Phil. > > > >_______________________________________________ > >Delphi mailing list > >[EMAIL PROTECTED] > >http://ns3.123.co.nz/mailman/listinfo/delphi > > > > > > > > > > > _______________________________________________ > Delphi mailing list > [EMAIL PROTECTED] > http://ns3.123.co.nz/mailman/listinfo/delphi _______________________________________________ Delphi mailing list [EMAIL PROTECTED] http://ns3.123.co.nz/mailman/listinfo/delphi _______________________________________________ Delphi mailing list [EMAIL PROTECTED] http://ns3.123.co.nz/mailman/listinfo/delphi
