Al 16/10/10 17:49, En/na Vinzent Höfler ha escrit:
On Sat, 16 Oct 2010 17:42:03 +0200, Luca Olivetti <l...@ventoso.org> wrote:
Al 16/10/10 16:57, En/na Vinzent Höfler ha escrit:
Well, the usual implementation of an externally called "Destroy" is
- first a call to the Terminate method
- then a WaitFor()
Nope, I avoid the WaitFor.
Nice for you, but I'd rather avoid polling solutions.
I use that only for threads I start at the beginning of the app and
terminate at the end, so polling isn't a big issue.
In fact I break the operation in two: first I Terminate all running
threads, then I check if they're finished (so that they all have time to
stop in parallel).
It's not strictly necessary since the OS will clean up everything
afterwards, but I prefer to do things properly.
I usually do a
while not FFinished do
CheckSynchronize(100);
Check again. You can't even access FFinished from a foreign thread.
I can (FFinished is a private member defined by me, and Destroy, being a
method of the same class, can access private members).
Bye
--
Luca
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal