"Pausando" um segmento com uma propriedade

Eu tenho um objeto TThread e quero poder iniciar / parar o thread através de um botão no formulário principal do programa. Estive procurando maneiras de fazer isso e, até agora, tenho as seguintes idéias:

Encerre e libere o encadeamento quando o usuário clicar em parar e crie um novo quando clicar em iniciar.Use sleep para atrasar o encadeamento (não quero fazer isso)Tenha uma propriedade booleana para determinar se o thread está em pausa ou não. O código no Execute só acontecerá se esse booleano for falso.

Estou inclinado para o # 3. Definir uma propriedade booleana no objeto TThread do formulário principal seria seguro para threads?

Qual dessas opções, ou qualquer alternativa melhor, devo escolher? Esta é a minha primeira vez usando threads, então qualquer ajuda é apreciada.

questionAnswers(2)

yourAnswerToTheQuestion