//callbacks protected virtual void ThreadPoolCallbackLimited(object context) { try { ThreadPoolContextLimited threadContext = (ThreadPoolContextLimited)context; List <WorkValue> workBatch = threadContext.workBatch; for (int i = threadContext.threadStart; i < threadContext.threadEnd; i++) { workBatch[i].obj.PerformWork(workBatch[i].context); } threadContext.mre.Set(); } catch (Exception e) { UnityEngine.Debug.LogError(e); throw; } }
protected override void ThreadPoolCallbackLimited(object context) { try { ThreadPoolContextLimited threadContext = (ThreadPoolContextLimited)context; List <WorkValue> workBatch = threadContext.workBatch; for (int i = threadContext.threadStart; i < threadContext.threadEnd; i++) { workBatch[i].obj.PerformWork(workBatch[i].context); pool.ReturnRented(workBatch[i].obj); } threadContext.mre.Set(); } catch (Exception e) { UnityEngine.Debug.LogErrorFormat("TP work batcher {0}: {1}", typeof(T).GetType(), e); throw; } }