public static AsyncOperationModule.HandleDataPair <TComponent, THandleData> InvokeExecute <TComponent, THandleData>(AsyncOperationModule module, ref int index) where THandleData : struct { var handleDataPair = module.Get <TComponent, THandleData>(index); if (handleDataPair?.Handle == null || !handleDataPair.Handle.IsCompleted) { if (handleDataPair?.Handle != null) { Debug.LogError(handleDataPair.Handle.Exception); Debug.LogError(handleDataPair.Handle.Status); } return(new AsyncOperationModule.HandleDataPair <TComponent, THandleData>()); } module.Handles.RemoveAtSwapBack(index); index--; return(handleDataPair); }