ummm bueno ya que quieres trabajar con hilos, pues lo primero es que no estas realizando el control de bucle del hilo, me explico, el metodo run es como cualquier otro ejecuta linea a linea hasta la ultima instruccion y luego muere el hilo, para hacer lo de el tiempo debes crear un bucle dentro del metodo RUN() para mantener el hilo vivo, puede ser un while o for, asi:
public void run(){
while(condicion){
//instrucciones del thread...
}
}
asi ya realiza la funcion indefinidamente mientras se cumpla la condicion del while, por ejemplo mientras pausa!=true, como al parecer necesitas, y el segundo problema es que este hilo no detiene su ejecucion nunca, para esperar un "retardo", neceseario si lo que se quiere es contar tiempo, tiene que introducir estas instrucciones el final del bucle despues de realizar todo el trabajo de una iteracion:
try{
Thread.Sleep(1000) // ese 1000 son lo milisegundos que debe parar el hilo
}
catch(InteruptedExcetion e) {
//captura de exepciones posibles, si no quieres no hagas nada aqui
}
y con estas instrucciones aseguras que tu hilo ejecute una vez el bucle por segundo.
espero te sirva.