SALES: 1-800-867-1380
This topic has not yet been rated - Rate this topic

CloudBlobClient.BeginListContainersSegmented Method (String, AsyncCallback, Object)

Updated: April 24, 2011

[This topic is part of the Windows Azure Storage Client Library 1.7, which has been deprecated. The current recommended version is Storage Client Library 3.0.]

Begins an asynchronous request to return a result segment containing a collection of containers whose names begin with the specified prefix.

Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)
'Usage

public IAsyncResult BeginListContainersSegmented (
	string prefix,
	AsyncCallback callback,
	Object state
)

Parameters

prefix

Type: System.String

The container name prefix.

callback

Type: System.AsyncCallback

The callback delegate that will receive notification when the asynchronous operation completes.

state

Type: System.Object

A user-defined object that will be passed to the callback delegate.

Return Value

Type: System.IAsyncResult

An IAsyncResult that references the asynchronous operation.

The following code sample lists containers in the storage account asynchronously, in result segments of ten containers at a time.

static void ListContainersInSegmentsAsynchronously(Uri blobEndpoint, string accountName, string accountKey)
{
    //Create service client for credentialed access to the Blob service.
    CloudBlobClient blobClient = 
        new CloudBlobClient(blobEndpoint, new StorageCredentialsAccountAndKey(accountName, accountKey));

    //Begin the operation to return the first segment of 10 containers in the account.
    blobClient.BeginListContainersSegmented(
        "", ContainerListingDetails.None, 10, null, ListContainersInSegmentsCallback, blobClient);
}

static void ListContainersInSegmentsCallback(IAsyncResult result)
{
    CloudBlobClient blobClient = (CloudBlobClient)result.AsyncState;
    ResultSegment<CloudBlobContainer> resultSegment = blobClient.EndListContainersSegmented(result);

    //Enumerate the containers.
    foreach (var container in resultSegment.Results)
    {
        Console.WriteLine(container.Name);
    }

    //Check whether the page is complete.
    if (resultSegment.HasMoreResults)
    {
        resultSegment = resultSegment.GetNext();

        //Enumerate the containers.
        foreach (var container in resultSegment.Results)
        {
            Console.WriteLine(container.Name);
        }
    }
}


The BeginListContainersSegmented method begins an operation to list containers in pages. A page is set of results of a specified size; it is represented by the ResultSegment class. By returning containers in pages, you can control the number of containers returned per operation. This may be useful if, for example, you are displaying a web page with some predefined number of containers on it.

To specify the page size to return, pass in a non-zero value for the maxResults parameter. Passing in zero for the maxResults parameter returns either the maximum number of results available, or the per-operation limit of 5000 results.

If you have specified a page size, you can check the HasMoreResults property to check whether the page is complete. If HasMoreResults is true, the complete page has not been returned for some reason. Call GetNext to return the remaining results in the page.

Note that if you have not specified a page size, HasMoreResults will always be false.

Check the value of the ContinuationToken property to determine whether there are more results to return from the service after the page is complete. The continuation token is non-null as long as there are more results to return from the service. If the page is complete, then HasMoreResults will be false, but if the continuation token is non-null, there are additional results to return beyond that page.

Call the GetNext method to return the next segment of results from the service.


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Development Platforms

Windows Vista, Windows 7 and Windows Server 2008

Target Platforms

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.