public void CloudBlobClientListBlobsSegmentedWithPrefixAPM() { string name = "bb" + GetRandomContainerName(); CloudBlobClient blobClient = GenerateCloudBlobClient(); CloudBlobContainer rootContainer = blobClient.GetRootContainerReference(); CloudBlobContainer container = blobClient.GetContainerReference(name); try { rootContainer.CreateIfNotExists(); container.Create(); List <string> blobNames = CreateBlobs(container, 3, BlobType.BlockBlob); List <string> rootBlobNames = CreateBlobs(rootContainer, 2, BlobType.BlockBlob); using (AutoResetEvent waitHandle = new AutoResetEvent(false)) { IAsyncResult result; BlobResultSegment results; BlobContinuationToken token = null; do { result = blobClient.BeginListBlobsSegmented("bb", token, ar => waitHandle.Set(), null); waitHandle.WaitOne(); results = blobClient.EndListBlobsSegmented(result); token = results.ContinuationToken; foreach (CloudBlockBlob blob in results.Results) { blob.Delete(); rootBlobNames.Remove(blob.Name); } }while (token != null); Assert.AreEqual(0, rootBlobNames.Count); result = blobClient.BeginListBlobsSegmented("bb", token, ar => waitHandle.Set(), null); waitHandle.WaitOne(); results = blobClient.EndListBlobsSegmented(result); Assert.AreEqual(0, results.Results.Count()); Assert.IsNull(results.ContinuationToken); result = blobClient.BeginListBlobsSegmented(name, token, ar => waitHandle.Set(), null); waitHandle.WaitOne(); results = blobClient.EndListBlobsSegmented(result); Assert.AreEqual(0, results.Results.Count()); Assert.IsNull(results.ContinuationToken); token = null; do { result = blobClient.BeginListBlobsSegmented(name + "/", token, ar => waitHandle.Set(), null); waitHandle.WaitOne(); results = blobClient.EndListBlobsSegmented(result); token = results.ContinuationToken; foreach (CloudBlockBlob blob in results.Results) { Assert.IsTrue(blobNames.Remove(blob.Name)); } }while (token != null); Assert.AreEqual(0, blobNames.Count); } } finally { container.DeleteIfExists(); } }