I used this function in a Windows forms application:
delegate void ParametrizedMethodInvoker5(int arg);  private void log_left_accs(int arg) {     if (InvokeRequired)      {         Invoke(new ParametrizedMethodInvoker5(log_left_accs), arg);         return;     }      label2.Text = arg.ToString(); }   But in WPF it doesn't work. Why?
In WPF, the Invoke method is on the dispatcher, so you need to call Dispatcher.Invoke instead of Invoke. Also, there is no InvokeRequired property, but the dispatcher has a CheckAccess method (for some reason, it's hidden in intellisense). So your code should be:
delegate void ParametrizedMethodInvoker5(int arg); void log_left_accs(int arg) {     if (!Dispatcher.CheckAccess()) // CheckAccess returns true if you're on the dispatcher thread     {         Dispatcher.Invoke(new ParametrizedMethodInvoker5(log_left_accs), arg);         return;     }     label2.Text= arg.ToString(); } 
                        In WPF use the CheckAccess method instead of InvokeRequired
if (!CheckAccess()) {    // On a different thread   Dispatcher.Invoke(() => log_left_accs(arg));   return; } 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With