From 457721f5d5e168d7f5d6398b107888deed848fdd Mon Sep 17 00:00:00 2001 From: MegaChuck64 Date: Thu, 14 Mar 2024 17:43:08 -0400 Subject: [PATCH 1/2] using newer CurrentManagedThreadId for main thread check --- MonoGame.Framework/Platform/Threading.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MonoGame.Framework/Platform/Threading.cs b/MonoGame.Framework/Platform/Threading.cs index e9c83eb7b82..f36bd1f9a3a 100644 --- a/MonoGame.Framework/Platform/Threading.cs +++ b/MonoGame.Framework/Platform/Threading.cs @@ -60,7 +60,7 @@ public struct QueuedAction static Threading() { - _mainThreadId = Thread.CurrentThread.ManagedThreadId; + _mainThreadId = Environment.CurrentManagedThreadId; } #if ANDROID @@ -76,7 +76,7 @@ internal static void ResetThread (int id) /// true if the code is currently running on the UI thread. public static bool IsOnUIThread() { - return _mainThreadId == Thread.CurrentThread.ManagedThreadId; + return _mainThreadId == Environment.CurrentManagedThreadId; } /// From d19c320c15d7d308211d72ef10d01da3f1d0bf3a Mon Sep 17 00:00:00 2001 From: MegaChuck64 Date: Wed, 20 Mar 2024 22:00:41 -0400 Subject: [PATCH 2/2] missed in android project --- .../Platform/Android/MonoGameAndroidGameView.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MonoGame.Framework/Platform/Android/MonoGameAndroidGameView.cs b/MonoGame.Framework/Platform/Android/MonoGameAndroidGameView.cs index 147a23a0350..58dec51a8c5 100644 --- a/MonoGame.Framework/Platform/Android/MonoGameAndroidGameView.cs +++ b/MonoGame.Framework/Platform/Android/MonoGameAndroidGameView.cs @@ -315,7 +315,7 @@ public void Stop() protected void WorkerThreadFrameDispatcher(SynchronizationContext uiThreadSyncContext) { - Threading.ResetThread(Thread.CurrentThread.ManagedThreadId); + Threading.ResetThread(Environment.CurrentManagedThreadId); try { stopWatch = System.Diagnostics.Stopwatch.StartNew(); @@ -573,7 +573,7 @@ void processStateForceSurfaceRecreation() bool RunIteration(CancellationToken token) { // set main game thread global ID - Threading.ResetThread(Thread.CurrentThread.ManagedThreadId); + Threading.ResetThread(Environment.CurrentManagedThreadId); InternalState currentState = InternalState.Exited_GameThread;