protected override void RunProcess()
 {
     unsafe
     {
         var size = _componentBatch.Batches.Length;
         ThreadHandler.For(0, size, i =>
         {
             ref var batch    = ref _componentBatch.Batches[i];
             ref var basic    = ref *batch.Component1;
             ref var basic2   = ref *batch.Component2;
        private void ExecuteForGroup(IReadOnlyList <IEntity> entities, IBasicEntitySystem castSystem, bool runParallel = false)
        {
            if (runParallel)
            {
                _threadHandler.For(0, entities.Count, i =>
                                   { castSystem.Process(entities[i]); });
                return;
            }

            for (var i = entities.Count - 1; i >= 0; i--)
            {
                castSystem.Process(entities[i]);
            }
        }