two problems with the global stop approach,
1) there is no way to distinguish between threads, which might actually be a welcome side effect.
2) You already have the FTerminated field that becomes true when the Thread.Terminate is called.
other than that you are golden with engkin's code.