private async Task <long> SetBlobSizeAsyncWorker(ulong blobId, long size, CancellationToken ct = default(CancellationToken)) { await TaskUtilities.SwitchToBackgroundThread(); var request = await BlobSizeRequest.GetSizeAsync(this, blobId, ct); return(await request.Task); }
public static async Task <BlobSizeRequest> SetSizeAsync(RHost host, ulong blobId, long size, CancellationToken cancellationToken) { var message = host.CreateRequestMessage("?SetBlobSize", new JArray { blobId, size }); var request = new BlobSizeRequest(host, message, cancellationToken); await host.SendAsync(message, cancellationToken); return(request); }
public async Task <long> SetBlobSizeAsync(ulong blobId, long size, CancellationToken cancellationToken = default(CancellationToken)) { if (_runTask == null) { throw new InvalidOperationException("Host was not started"); } using (CancellationTokenUtilities.Link(ref cancellationToken, _cts.Token)) { try { await TaskUtilities.SwitchToBackgroundThread(); var request = await BlobSizeRequest.GetSizeAsync(this, blobId, cancellationToken); return(await request.Task); } catch (OperationCanceledException ex) when(_cts.IsCancellationRequested) { throw new RHostDisconnectedException(Resources.Error_RHostIsStopped, ex); } } }