Веб-задания Azure. Могу ли я использовать асинхронные методы?

Мне было интересно, может ли SDK Azure WebJobs запускать асинхронные методы? В настоящее время у меня есть метод, который выглядит следующим образом:

class Program
{
    static void Main(string[] args)
    {
        var host = new JobHost();
        host.RunAndBlock();
    }

    public static void ProcessStuff([QueueInput("myqueue")] string msg)
    {
        var tsk = ProcessStuffAsync(msg)
                  .ContinueWith(x => HandleAsyncError(x),
                      TaskContinuationOptions.OnlyOnFaulted);
        tsk.Wait();
    }

    public static async Task ProcessStuffAsync(string msg)
    {
        // do some async stuff and await it
    }

    // other methods ...
}

Однако мне было интересно, могу ли я просто знать, что JobHost вместо этого вызывает мой асинхронный метод? Там нет тонны документации о том, как пытаться использовать async / await в WebJobs, и было бы очень хорошо, если бы я мог.

Я пытаюсь запустить это локально для тестирования ... но SDK WebJobs не поддерживает локальный эмулятор хранилища ...

ОБНОВЛЕНИЕ 4/7/2014: ответ Виктора верен, но я действительно хотел показать, что вы увидите от использования асинхронных методов в WebJob (они работают).

Для метода в вашем WebJob, который выглядит следующим образом:

public async static Task ProcessMessageAsync([QueueInput("testq2")] string message)
{
    await Task.Delay(50);

    Console.WriteLine("Processing Message Async...");
    Console.WriteLine(message);
}

Вы увидите следующий вывод в вашем журнале WebJobs:

running in pid: 6272
Timestamp:4:36:02 PM
Parameters bound. Invoking user function.
--------
Warning: This asynchronous method will be run synchronously.
Processing Message Async...
a test message
--------
Success

Ответы на вопрос(2)

Ваш ответ на вопрос