CloudQueue.BeginAddMessage Method (CloudQueueMessage, Nullable, Nullable, AsyncCallback, Object) |
See Also Example |
Begins an asynchronous operation to add a message to the queue, with a value specifying its expiration (the length of time it can remain in the queue), and a value specifying how long it must first remain invisible (delayed visibility). 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 Nullable(Of TimeSpan) Dim initialVisibilityDelay As Nullable(Of TimeSpan) Dim callback As AsyncCallback Dim state As Object Dim returnValue As IAsyncResult returnValue = instance.BeginAddMessage(message, timeToLive, initialVisibilityDelay, callback, state) |
Syntax
Visual Basic |
---|
Public Function BeginAddMessage ( _ message As CloudQueueMessage, _ timeToLive As Nullable(Of TimeSpan), _ initialVisibilityDelay As Nullable(Of TimeSpan), _ callback As AsyncCallback, _ state As Object _ ) As IAsyncResult |
C# |
---|
public IAsyncResult BeginAddMessage ( CloudQueueMessage message, Nullable<TimeSpan> timeToLive, Nullable<TimeSpan> initialVisibilityDelay, AsyncCallback callback, Object state ) |
C++ |
---|
public: IAsyncResult^ BeginAddMessage ( CloudQueueMessage^ message, Nullable<TimeSpan> timeToLive, Nullable<TimeSpan> initialVisibilityDelay, AsyncCallback^ callback, Object^ state ) |
J# |
---|
JScript |
---|
Parameters
- message
A queue message.
- timeToLive
A value indicating the message time-to-live.
- initialVisibilityDelay
The visibility delay for the message.
- callback
The callback delegate that will receive notification when the asynchronous operation completes.
- state
A user-defined object that will be passed to the callback delegate.
Return Value
An 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 adds a method 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. |
The message visibility delay specifies the time that the message will be invisible. After the delay expires, the message will become visible.