私はを使用してTimerいて、定期的なチェックを実行させています。テスト条件が真の場合、スレッドを開始して、スレッドに実行させる必要があります。
そのスレッド内で、使用しているUIを変更したい場合InvokeOnMainThread()。ただし、スレッドはTimerすでに別のスレッドであるからトリガーされたInvokeOnMainThread()ため、は実際のメインスレッドではなく、タイマーのスレッドで処理を呼び出します。InvokeOnMainThread()私は2つの呼び出しをボクシングすることによってそれを回避します。
これは意図したとおりに機能していますか、それともMonoフレームワークのバグですか?メインスレッドは、現在のスレッドをトリガーしたスレッドとして定義されていますか、それとも「ルート」スレッドを返すことになっていますか?