I'm using a Timer
and let it perform regular checks. If the test condition is true, I start a thread and let it do what it has to do.
If within that thread I want to change the UI I'm using InvokeOnMainThread()
. But as the thread was triggered from a Timer
which already is a seprate thread, the InvokeOnMainThread()
will invoke things on the Timer's thread and not on the real main thread. I work around it by boxing two InvokeOnMainThread()
calls.
Is this working as intended or is it a bug in the Mono framework? Is the main thread defined as the one who triggered the current thread or is it supposed to return the "root" thread?