Loom工具類:Unity3D巧妙處理多線程

Loom代碼很少,只有168行, 然而卻具有了子線程運行Action, 子線程與主線程交互的能力!線程

public static Thread RunAsync(Action a)繼承

public static void QueueOnMainThread(Action action)io

public static void QueueOnMainThread(Action action, float time)date

 

首先Loom類繼承自MonoBehaviour,第一次使用靜態的Loom.Current時,就會判斷,是否初始化(其實就是將Loom 掛載到 一個本身建立的GameObject上),這樣,QueueOnMainThread放進來的action就能夠在每一幀回調的Update方法進行action調用。線程池

RunAsync用線程池,運行在子線程中。 使用的時候, 當子線程的工做完成後, 能夠在後面加一句Loom.QueueOnMainThread()實現線程切換!float

相關文章
相關標籤/搜索