void Start() { //myThread = UnityThreadHelper.CreateThread(DoThreadWork); MyThread = UnityThreadHelper.CreateThread (() => { DoThreadWork (MyThread); }); }
/// <summary> /// Creates new thread which runs the given action. The given action will be wrapped so that any exception will be catched and logged. /// </summary> /// <param name="action">The action which the new thread should run.</param> /// <param name="autoStartThread">True when the thread should start immediately after creation.</param> /// <returns>The instance of the created thread class.</returns> public static UnityThreading.ActionThread CreateThread(System.Action<UnityThreading.ActionThread> action, bool autoStartThread) { Instance.EnsureHelperInstance(); System.Action<UnityThreading.ActionThread> actionWrapper = currentThread => { try { action(currentThread); } catch (System.Exception ex) { UnityEngine.Debug.LogError(ex); } }; var thread = new UnityThreading.ActionThread(actionWrapper, autoStartThread); Instance.RegisterThread(thread); return thread; }