CloudQueue.BeginAddMessage Method (CloudQueueMessage, TimeSpan, AsyncCallback, Object) |
See Also Example |
Begins an asynchronous operation to add a message to the queue, with a value specifying how long it can remain in the queue. Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)
Usage
Visual Basic |
---|
Dim instance As CloudQueue Dim message As CloudQueueMessage Dim timeToLive As TimeSpan Dim callback As AsyncCallback Dim state As Object Dim returnValue As IAsyncResult returnValue = instance.BeginAddMessage(message, timeToLive, callback, state) |
Syntax
Visual Basic |
---|
Public Function BeginAddMessage ( _ message As CloudQueueMessage, _ timeToLive As TimeSpan, _ callback As AsyncCallback, _ state As Object _ ) As IAsyncResult |
C# |
---|
public IAsyncResult BeginAddMessage ( CloudQueueMessage message, TimeSpan timeToLive, AsyncCallback callback, Object state ) |
C++ |
---|
public: IAsyncResult^ BeginAddMessage ( CloudQueueMessage^ message, TimeSpan timeToLive, AsyncCallback^ callback, Object^ state ) |
J# |
---|
JScript |
---|
Parameters
- message
Type: Microsoft.WindowsAzure.StorageClient.CloudQueueMessage
A message.
- timeToLive
Type: System.TimeSpan
A value indicating the message time-to-live.
- 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.IAsyncResultAn IAsyncResult that references the asynchronous operation.Example
The following code example illustrates using state when making an asynchronous call.
C# | Copy Code |
---|---|
using System; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.StorageClient; namespace QueueAsyncExample { public class QueueAsyncStateExample { public CloudQueue queueObject; public object customStateInformation; // Constructor for the example state class public QueueAsyncStateExample( CloudQueue queue, object yourAdditionalStateObject ) { this.queueObject = queue; this.customStateInformation = yourAdditionalStateObject; } // Static call that starts adding a message with no delay for visibility and no expiration static void AddMessageAsync( string messageString, CloudQueue queue, object stateObject ) { queue.BeginAddMessage( new CloudQueueMessage( messageString ), QueueAddMessageCallback, new QueueAsyncStateExample( queue, stateObject ) ); } // Static call that starts adding a message // and specifies how long the message should stay in the queue before being deleted (its "time to live") static void AddMessageAsync( string msgString, TimeSpan messageTimeToLive, CloudQueue queue, object stateObject ) { queue.BeginAddMessage( new CloudQueueMessage( msgString ), messageTimeToLive, QueueAddMessageCallback, new QueueAsyncStateExample( queue, stateObject ) ); } // Static call that starts adding a message // and specifies how long the message should stay in the queue before being deleted (its "time to live") // and specifies how long to wait before the message can be retrieved from the queue (its "initial visibility delay") static void AddMessageAsync( string messageString, TimeSpan msgTimeToLive, TimeSpan timeBeforeMessageIsVisible, CloudQueue queue, object stateObject ) { queue.BeginAddMessage( new CloudQueueMessage( messageString ), msgTimeToLive, timeBeforeMessageIsVisible, QueueAddMessageCallback, new QueueAsyncStateExample( queue, stateObject ) ); } // The callback method that is called once the add-message operation is complete static void QueueAddMessageCallback( IAsyncResult opResult ) { QueueAsyncStateExample state = (QueueAsyncStateExample) opResult.AsyncState; CloudQueue queue = state.queueObject; // End the BeginAddMessage operation queue.EndAddMessage( opResult ); // ...other asynchronous operations could be started here if appropriate } } } |
Remarks
The BeginAddMessage method begins an operation to add a message to the back of the queue. However, because the operation is asynchronous, do not rely on the order in which messages are added to the queue.
A message can be up to 64 KB in size for SDK version 1.6 or newer, or 8 KB in size for older SDK versions. The storage client library encodes the message content using Base64 when EncodeMessage is set to true, its default. Encode messages if message content can contain characters that are invalid in XML.
Note |
---|
Encoding with Base64 adds overhead to the message size. You can use Convert.ToBase64String() to verify content encoded with Base64 fits within the 64 KB message size limit. |