public static UniTask ConfigureAwait(this JobHandle jobHandle, PlayerLoopTiming waitTiming, CancellationToken cancellation = default(CancellationToken)) { var awaiter = new JobHandleAwaiter(jobHandle, cancellation); PlayerLoopHelper.AddAction(waitTiming, awaiter); return new UniTask(awaiter); }
public static UniTask ConfigureAwait(this JobHandle jobHandle, PlayerLoopTiming waitTiming, CancellationToken cancellation = default) { var awaiter = new JobHandleAwaiter(jobHandle, cancellation); if (!awaiter.IsCompleted) { PlayerLoopHelper.AddAction(waitTiming, awaiter); } return(new UniTask(awaiter)); }
public static UniTask ToUniTask(this JobHandle jobHandle, CancellationToken cancellation = default(CancellationToken)) { var awaiter = new JobHandleAwaiter(jobHandle, cancellation); PlayerLoopHelper.AddAction(PlayerLoopTiming.EarlyUpdate, awaiter); PlayerLoopHelper.AddAction(PlayerLoopTiming.PreUpdate, awaiter); PlayerLoopHelper.AddAction(PlayerLoopTiming.Update, awaiter); PlayerLoopHelper.AddAction(PlayerLoopTiming.PreLateUpdate, awaiter); PlayerLoopHelper.AddAction(PlayerLoopTiming.PostLateUpdate, awaiter); return new UniTask(awaiter); }
public static IAwaiter GetAwaiter(this JobHandle jobHandle) { var awaiter = new JobHandleAwaiter(jobHandle, CancellationToken.None); if (!awaiter.IsCompleted) { PlayerLoopHelper.AddAction(PlayerLoopTiming.EarlyUpdate, awaiter); PlayerLoopHelper.AddAction(PlayerLoopTiming.PreUpdate, awaiter); PlayerLoopHelper.AddAction(PlayerLoopTiming.Update, awaiter); PlayerLoopHelper.AddAction(PlayerLoopTiming.PreLateUpdate, awaiter); PlayerLoopHelper.AddAction(PlayerLoopTiming.PostLateUpdate, awaiter); } return awaiter; }