Skip to content

Ver 2.0.0-preview1

Pre-release
Pre-release
Compare
Choose a tag to compare
@neuecc neuecc released this 05 May 18:22
· 739 commits to master since this release

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.Lazy returns AsyncLazy<T>
  • DelayFrame return type is changed from UniTask<int> to UniTask
  • Add UniTask.Create
  • UniTask accepts new IUniTaskSource instead of IAwaiter
  • Add UniTask.VoidAction, UniTask.VoidUnityAction
  • WhenAny return type is changed to (int winArgumentIndex, T1 result1, T2 result2, ...)
  • UniTaskCompletionSource can reuse by .Reset()
  • Add AutoResetUniTaskCompletionSource
  • UniTaskScheduler.UnobservedExceptionWriteLogType's default is changed to LogType.Exception
  • JobHandle await extension does not accept CancellationToken
  • Add JobHandle.WaitAsync
  • Add new last PlayerLoopTimings (PlayerLoopTiming.LastPostLateUpdate is same as WaitForEndOfFrame)
  • All Trigger method combinates GetAsync***Trigger and Get***AsyncHandler and ***Async.
  • Improved UniTaskTracker Window, enable a jump to the source file
  • Support addressable await(AsyncOperationHandle and AsyncOpereationHandle<T>)

Reports are welcome, please comment on the this issue below.
#61