コード例 #1
0
        public static async Task RunOnMain(Action t)
        {
            if (Thread.CurrentThread == AsyncSystem.MainThread)
            {
                t();
            }
            else
            {
                var res = new TaskCompletionSource <bool>();

                AsyncSystem.Log("RunOnMain");

                StartOnMainThread(() =>
                {
                    try
                    {
                        t();

                        res.SetResult(true);
                    }
                    catch (Exception e)
                    {
                        AsyncSystem.LogError(e);
                    }
                });

                await res.Task;
            }
        }