// ReSharper Disable CheckNamespace

using System.Threading;
using UnityEngine;

internal static class UnityMainThreadDispatcher
{
    private static SynchronizationContext _unityContext;

    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
    private static void SetContext()
    {
        AdHelper.Log("[UnityMainThreadDispatcher] [Method] SetContext()");
        _unityContext = SynchronizationContext.Current;
    }

    public static void Post(SendOrPostCallback d, object state = null) => _unityContext?.Post(d, state);

    public static void Send(SendOrPostCallback d, object state = null) => _unityContext?.Send(d, state);
}
