Tanoda
ExecuteOnMainThread.cs
Go to the documentation of this file.
1using System;
2using System.Collections;
3using System.Collections.Concurrent;
4using GILES;
5using UnityEngine;
6
7public class ExecuteOnMainThread : pb_MonoBehaviourSingleton<ExecuteOnMainThread>
8{
9 public readonly ConcurrentQueue<Action> RunOnMainThread = new ConcurrentQueue<Action>();
10
11 void Update()
12 {
13 if (!RunOnMainThread.IsEmpty)
14 {
15 Action action;
16 while (RunOnMainThread.TryDequeue(out action)) action.Invoke();
17 }
18 }
19
20 public void DelayedAction(Action action, float time)
21 {
22 StartCoroutine(DelayAction(action, time));
23 }
24
25 IEnumerator DelayAction(Action action, float time)
26 {
27 yield return new WaitForSeconds(time);
28 action();
29 }
30}
readonly ConcurrentQueue< Action > RunOnMainThread
void DelayedAction(Action action, float time)