public AutoRenewLease(CloudBlockBlob blob) { _blob = blob; // acquire lease LeaseId = blob.TryAcquireLease(TimeSpan.FromSeconds(60)); if (!HasLease) return; // keep renewing lease var fortySeconds = TimeSpan.FromSeconds(40); _renewalTimer = new Timer(x => { if (_isRenewing) blob.RenewLease(AccessCondition.GenerateLeaseCondition(LeaseId)); }, null, fortySeconds, fortySeconds); }
public AutoRenewLease(CloudBlockBlob blob) { this.blob = blob; blob.Container.CreateIfNotExists(); leaseId = blob.TryAcquireLease(); if (HasLease) { renewalThread = new Thread(() => { Thread.Sleep(TimeSpan.FromSeconds(40)); blob.RenewLease(new AccessCondition() { LeaseId = leaseId }); }); renewalThread.Start(); } }