/// <summary>
        /// If you are planing to use MainThreadDispatcher,
        /// make sure you call the Init method before using any MainThreadDispatcher public API.
        ///
        /// The Init methods will initialize platform specific MainThreadDispatcher implementation.
        /// </summary>
        public static void Init()
        {
            if (s_MainThreadDispatcher != null)
            {
                return;
            }

            if (Application.isEditor)
            {
                s_MainThreadDispatcher = new MainThreadDispatcherEditor();
            }
            else
            {
                s_MainThreadDispatcher = new MainThreadDispatcherRuntime();
            }

            s_MainThreadDispatcher.Init();
        }