"Pausar" un hilo con una propiedad

Tengo un objeto TThread y quiero poder iniciar / detener el hilo a través de un botón en la forma principal del programa. He estado buscando formas de hacer esto y hasta ahora tengo las siguientes ideas:

Termine y libere el hilo cuando el usuario haga clic en detener y cree uno nuevo cuando haga clic en iniciar.Usa el modo de suspensión para retrasar el hilo (no quiero hacer esto)Tener una propiedad booleana para determinar si el subproceso está en pausa o no. El código en Ejecutar solo sucederá si este valor booleano es falso.

Me estoy inclinando hacia el # 3. ¿Establecer una propiedad booleana en el objeto TThread del formulario principal sería threadsafe?

¿Con cuál de estas opciones, o cualquier otra alternativa mejor, debo elegir? Esta es la primera vez que uso hilos, por lo que agradezco cualquier ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta