Se usi i thread, non ha senso usare i Timer. Devi riscrivere tutto secondo le regole imposte dalla programmazione "multithreading". Ma il discorso diventa complicato, sicuramente non si può rispondere correggendo il tuo codice qui in una risposta del forum ...