Loom代碼不多,只有168行, 然而卻具備了子線程運行Action, 子線程與主線程交互的能力!
public static Thread RunAsync(Action a)
public static void QueueOnMainThread(Action action)
public static void QueueOnMainThread(Action action, float time)
首先Loom類繼承自MonoBehaviour,第一次使用靜態的Loom.Current時,就會判斷,是否初始化(其實就是將Loom 掛載到 一個自己創建的GameObject上),這樣,QueueOnMainThread放進來的action就可以在每一幀回調的Update方法進行action調用。
RunAsync用線程池,運行在子線程中。 使用的時候, 當子線程的工作完成后, 可以在后面加一句Loom.QueueOnMainThread()實現線程切換!