Estas usando threads y eso es difícil, el error en si te dice que estas tratando de usar un objeto que otro thread lo tiene en lock porque lo esta usando, no podes modificar su bloque de memoria porque lo estan usando bla bla bla...
Usa timers mejor, sin tanta paja xD
Ah y tu código es de C#