public static Task<bool> CreateIfNotExistsAsync( this CloudBlobContainer container, CancellationToken ct = default(CancellationToken)) { ICancellableAsyncResult ar = container.BeginCreateIfNotExists(null, null); ct.Register(ar.Cancel); return Task.Factory.FromAsync<bool>(ar, container.EndCreateIfNotExists); }
/// <summary> /// Creates the container if it does not already exist asynchronously. /// </summary> /// <param name="blobContainer">Cloud blob container.</param> /// <param name="cancellationToken">Cancellation token.</param> /// <returns> /// <c>true</c> if the container did not already exist and was created; otherwise <c>false</c>. /// </returns> public static Task<bool> CreateIfNotExistsAsync( this CloudBlobContainer blobContainer, CancellationToken cancellationToken = default (CancellationToken)) { ICancellableAsyncResult asyncResult = blobContainer.BeginCreateIfNotExists(null, null); CancellationTokenRegistration registration = cancellationToken.Register(p => asyncResult.Cancel(), null); return Task<bool>.Factory.FromAsync( asyncResult, result => { registration.Dispose(); return blobContainer.EndCreateIfNotExists(result); }); }
/// <summary> /// CreateIfNotExistsAsync /// </summary> /// <param name="blobContainer"></param> /// <returns></returns> public static Task CreateIfNotExistsAsync(this CloudBlobContainer blobContainer) { var ar = blobContainer.BeginCreateIfNotExists(null, null); return Task.Factory.FromAsync(ar, (r) => { blobContainer.EndCreateIfNotExists(r); }); }