Neither of these work:
_uiDispatcher.Invoke(() => { });
_uiDispatcher.Invoke(delegate() { });
All I want to do is Invoke an inline method on my main UI thread. So I called this on the main thread:
_uiDispatcher = Dispatcher.CurrentDispatcher;
And now I want to execute some code on that thread from another thread. How do I do it? Am I using the wrong syntax?
Note that this is not a WPF application; I've referenced WindowsBase
so I could get access to the Dispatcher
class.
Best Answer
The problem is that you aren't providing the exact type of delegate you want to invoke.
Dispatcher.Invoke
just takes aDelegate
. Is it anAction<T>
? If so, what isT
? Is it aMethodInvoker
?Action
? What?If your delegate takes no arguments and returns nothing, you can use
Action
orMethodInvoker
. Try this: