private IEnumerator <IAsyncResult> GetMessageImpl(int numberOfMessages, TimeSpan visibilityTimeout, AsyncIteratorContext <IEnumerable <IMessageData> > context) { IAsyncResult asyncResult = this.StorageManager.AsyncProcessor.BeginExecute <List <IMessageData> >((TimeSpan remaining) => { List <IMessageData> messageDatas; using (DevelopmentStorageDbDataContext dbContext = DevelopmentStorageDbDataContext.GetDbContext()) { Microsoft.WindowsAzure.DevelopmentStorage.Store.QueueContainer queueContainer = this.LoadQueueContainer(dbContext); ISingleResult <QueueMessage> queueMessages = dbContext.DequeueMessages(this._queue.AccountName, this._queue.QueueName, new int?((int)visibilityTimeout.TotalSeconds), new int?(numberOfMessages)); List <IMessageData> messageDatas1 = new List <IMessageData>(); foreach (QueueMessage queueMessage in queueMessages) { messageDatas1.Add(new DbMessageData(queueMessage, false)); } this._queue = queueContainer; messageDatas = messageDatas1; } return(messageDatas); }, this.Timeout, context.GetResumeCallback(), context.GetResumeState("DbQueueContainer.GetMessage")); yield return(asyncResult); context.ResultData = this.StorageManager.AsyncProcessor.EndExecute <List <IMessageData> >(asyncResult); }