Skip to content

Releases: Arvtesh/UnityFx.Async

v0.9.2

25 May 18:56
Compare
Choose a tag to compare

Added

  • Added pull-based progress support (IAsyncOperation.Progress).
  • Added new methods to IAsyncUpdateSource.
  • Added AsyncUpdateSource class as default IAsyncUpdateSource implementation.
  • IAsyncOperation<T> now inherits IObservable<T>.

Changed

  • Renamed (Try)AddCompletionCallback/RemoveCompletionCallback methods to (Try)AddContinuation/RemoveContinuation.
  • Changed IAsyncOperation.Exception type to Exception.
  • Changed IAsyncOperationEvents.Completed type to AsyncCompletedEventHandler.

Removed

  • Removed ToObservable extension of IAsyncOperation.

v0.9.1

07 May 18:03
Compare
Choose a tag to compare

Fixed

  • Fixed Unity3d script compile errors when targeting .NET 4.x (Issue #1).

v0.9.0

24 Apr 17:25
Compare
Choose a tag to compare

Added

  • Added AsyncContinuationOptions.
  • Added AsyncCreationOptions.
  • Added Promise-like extensions Then, ThenAll, ThenAny, Rebind, Catch, Finally and Done.
  • Added Unwrap extension methods.
  • Added FromTask/FromObservable helpers.
  • Added FromAction helpers.
  • Added ToAsync extension method for IObservable interface.
  • Added TryAddContinuation/RemoveContinuation methods to IAsyncOperationEvents for non-delegate continuations.
  • Added IAsyncUpdatable and IAsyncUpdateSource interfaces.
  • Added Delay/Retry overload that uses IAsyncUpdateSource-based service for time management.
  • Added cancellation support (IAsyncCancellable interface, WithCancellation extension method and many implementation changes).
  • Added Wait/Join overloads with CancellationToken argument.

Changed

  • Changed ContinueWith extension signatures to match corresponding Task methods.
  • Changed IAsyncOperation.Exception to always return an exception instance if completed with non-success.
  • Changed AddCompletionCallback/AddContinuation to instance methods (instead of extensions).

Fixed

  • Fixed exception not initialized properly for canceled operations sometimes.

Removed

  • Removed GetAwaiter/ConfigureAwait instance methods from AsyncResult to avoid code duplication (extension methods should be used).
  • Removed all AsyncCompletionSource methods having completedSynchronously argument.

v0.8.2

28 Mar 17:51
Compare
Choose a tag to compare

Added

  • New AsyncResult constructors added.
  • New overloads for AsyncResult.FromResult, AsyncResult.FromCanceled and AsyncResult.FromException methods added.

Changed

  • Made optimizations to ToTask extensions implementation for cases when target operation is completed.
  • Marked all assembly classes CLS-compilant.

Fixed

  • ToTask extensions now throw inner exception instead of the AggregateException in case of an error.
  • Fixed AsyncResult.Delay throwing exception when infinite delay (-1) specified.

v0.8.1

19 Mar 19:52
Compare
Choose a tag to compare

Added

  • Added AsyncResultQueue.Empty event.
  • Added Unity-specific tools for Asset Store.

v0.8.0

10 Mar 19:28
Compare
Choose a tag to compare

Added

  • Added IAsyncCompletionSource.Operation property to match TaskCompletionSource interface.
  • Added new constructor to AsyncResult.
  • Added AsyncResult.Start method to match Task interface.
  • Added AsyncResult.OnStarted virtual method.
  • Added WhenAll/WhenAny static helpers for AsyncResult.
  • Added ConfigureAwait extensions for IAsyncOperation.
  • Added Task extension methods to that convert it to an AsyncResult instance.
  • Added AsyncResult.Retry methods.
  • Added Wait overloads to match Task interface.

Removed

  • Removed AsyncResult.TryCreateAsyncWaitHandle helper.

Changed

  • Modified AsyncResultAwaiter implementation to throw if the operation was canceled or faulted (to match TaskAwaiter behaviour).
  • Implemented AsyncCompletionSource as a sealed analog of TaskCompletionSource.
  • Removed public completion methods from AsyncResult (moved them to AsyncCompletionSource).
  • Made SpinUntilCompleted an extension method (was AsyncResult instance method).
  • Changed IAsyncOperation.Exception type to AggregateException to match Task.
  • Changed IAsyncOperationEvents.Completed event signature & behaviour to always execute handler (event if it was registered after the comperation has copleted).
  • Removed AsyncResult constructors that accepted exceptions.
  • Changed AsyncResult.Result property to throw AggregateException when faulted or canceled to mathch Task behaviour.

Fixed

  • AsyncResultQueue now does not remove uncompleted operations from the queue.
  • AsyncResult.Exception now only returns non-null value when the operation is faulted.

v0.7.1

14 Feb 19:54
Compare
Choose a tag to compare

Added

  • Added possibility to store multiple exceptions in AsyncResult.
  • Added AggregateException class for net35 target.
  • Added IsEmpty property to AsyncResultQueue.

Changed

  • AsyncResult implemenation is changed to prevent returning null operation result when the operation is completed for some cases.

v0.7.0

10 Feb 15:55
Compare
Choose a tag to compare

Added

  • Added AsyncResultQueue
  • Added continuations support.
  • Added project documentation site (docs folder).
  • Added unit tests project.
  • Added AppVeyor CI support.
  • Added NuGet deployment.
  • Added GitVersion support.

v0.6.0

05 Nov 12:31
Compare
Choose a tag to compare