Azure WebJobs - Kann ich Async-Methoden verwenden?

Ich habe mich gefragt, ob das Azure WebJobs SDK asynchrone Methoden auslösen kann. Derzeit habe ich eine Methode, die wie folgt aussieht:

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 ...
}

Ich fragte mich jedoch, ob ich nur den JobHost wissen lassen könnte, um stattdessen meine asynchrone Methode aufzurufen. Es gibt nicht viele Dokumentationen darüber, wie man versucht, async / await in WebJobs zu verwenden, und es wäre wirklich nett, wenn ich könnte.

Ich versuche, dies lokal auszuführen, um es zu testen, aber das WebJobs SDK unterstützt den lokalen Speicheremulator nicht.

UPDATE 07.04.2014: Victors Antwort ist richtig, aber ich wollte zeigen, was Sie bei der Verwendung von asynchronen Methoden in einem WebJob sehen werden (sie funktionieren).

Für eine Methode in Ihrem WebJob, die wie folgt aussieht:

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

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

In Ihrem WebJobs-Protokoll wird die folgende Ausgabe angezeigt:

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage