Я пытаюсь объяснить некоторые странности при попытке получить сообщения из локальных очередей хранения. Я уверен, что этого не происходит в производстве с использованием реальных очередей Azure.CloudQueueMessage.GetMessagesAsync зависает, в то время как синхронная версия не
линия, в частности, в результате чего этот вопрос является:
msgs = await priorityQueue.GetMessagesAsync(Settings.NumberOfMessagesToGet, visibilityTimeSpan, null, null);
Который будет просто ничего не делать и не кажется, никогда не вернется. Однако, заменив его на:
msgs = priorityQueue.GetMessages(Settings.NumberOfMessagesToGet, visibilityTimeSpan, null, null);
Возврат обратно после его завершения и кажется прекрасным.
Я использую ожидание здесь прямо? Любые идеи, почему это не работает?
Я использую Windows Azure SDK 2.8 с эмулятором Windows Azure Storage Emulator 4.2.0.0, если он дает какие-либо подсказки.
Вы вызываете' Result' или 'Wait' дальше ваш стек вызовов? –
Вы имеете в виду эту возвращенную задачу? Я думал, что ожидание задания означает, что вам не нужно было называть результат. Или вы имеете в виду что-то еще? –
Вы полностью * должны * использовать 'await' - полностью вверх. Мне интересно, имеет ли ваш локальный код 'Result' или' Wait' в нем, который отсутствует в вашем производственном коде. –