コード例 #1
0
        //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;
            }
        }
コード例 #2
0
        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;
            }
        }