12345678910111213141516171819202122232425262728293031 |
- using System;
- using UnityEditor;
- using UnityEditorInternal;
- using UnityEngine;
- namespace Unity.Cloud.Collaborate.Utilities
- {
- internal static class Threading
- {
- /// <summary>
- /// Returns true if the current thread is the main thread, false otherwise.
- /// </summary>
- public static bool IsMainThread => InternalEditorUtility.CurrentThreadIsMainThread();
- /// <summary>
- /// Ensure that the provided action is executed on the UI/main thread.
- /// </summary>
- /// <param name="action">Action to perform on the UI/main thread.</param>
- public static void EnsureUiThread(Action action)
- {
- if (IsMainThread)
- {
- action();
- }
- else
- {
- EditorApplication.delayCall += () => action();
- }
- }
- }
- }
|