Start/Stop DispatcherTimer from a different thread

2019-06-17 07:51发布

问题:

Here is my code..

public DispatcherTimer tmr = new DispatcherTimer();

void somefunction (parameters){

if (something)
  tmr.Start();
if (something else)
  tmr.Stop();

   }

My problem is that I can't access the Start/Stop methods of the tmr object from the second function since it runs on a different thread!!!

Can somebody please help me?? I am struck wih this problem for almost 3 days! :(

回答1:

You need to Invoke it via Dispatcher (for marshaling the call from another thread) like so

Deployment.Current.Dispatcher.BeginInvoke((Action)(()=>timer.Start())