Skip to content

v0.8.0

Compare
Choose a tag to compare
@Arvtesh Arvtesh released this 10 Mar 19:28
· 1 commit to 2258782c84edab5163ba35dd82d04b40615b204b since this release

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.