timer cross-thread fix

Invoke methods on the proper thread