This version is preview, if you want to use stable version, check 1.3.1.
This release will improve performance, especially memory allocation.
The automatic reuse mechanism has achieved zero allocation in most use cases.
However, it has many breaking changes.
- Namespace change:
UniRx.Async->Cysharp.Threading.Tasks - All
UniTask/UniTask<T>can not await twice(will throw exception), Reusable Promise is discontinuance - All UniTask Factory method(such as
UniTask.Delay) run immediately(same as standard Task, previously it does not run before call await) - Add
UniTask.Preserve, it converts to allow multiple await - Almost UniTask methods and AsyncMethodBuilder's runner automatically reuse(zero allocation)
UniTask.LazyreturnsAsyncLazy<T>- DelayFrame return type is changed from
UniTask<int>toUniTask - Add
UniTask.Create - UniTask accepts new
IUniTaskSourceinstead ofIAwaiter - Add
UniTask.VoidAction,UniTask.VoidUnityAction - WhenAny return type is changed to
(int winArgumentIndex, T1 result1, T2 result2, ...) UniTaskCompletionSourcecan reuse by.Reset()- Add
AutoResetUniTaskCompletionSource UniTaskScheduler.UnobservedExceptionWriteLogType's default is changed toLogType.Exception- JobHandle await extension does not accept
CancellationToken - Add
JobHandle.WaitAsync - Add new last PlayerLoopTimings (
PlayerLoopTiming.LastPostLateUpdateis same asWaitForEndOfFrame) - All Trigger method combinates
GetAsync***TriggerandGet***AsyncHandlerand***Async. - Improved UniTaskTracker Window, enable a jump to the source file
- Support addressable await(
AsyncOperationHandleandAsyncOpereationHandle<T>)
Reports are welcome, please comment on the this issue below.
#61