El operador de espera solo se puede utilizar dentro de un método asíncrono [duplicado]

Esta pregunta ya tiene una respuesta aquí:

No se puede especificar el modificador 'asíncrono' en el método 'Principal' de una aplicación de consola 15 respuestas

Estoy tratando de hacer un programa simple para probar la nueva funcionalidad asíncrona .NET en Visual Studio 2012. Generalmente uso BackgroundWorkers para ejecutar el código que consume mucho tiempo de forma asíncrona, pero a veces parece una molestia para una operación relativamente simple (pero costosa) . El nuevo modificador asíncrono parece que sería genial de usar, pero desafortunadamente parece que no puedo realizar una prueba simple.

Aquí está mi código, en una aplicación de consola de C #:

static void Main(string[] args)
{
    string MarsResponse = await QueryRover();
    Console.WriteLine("Waiting for response from Mars...");
    Console.WriteLine(MarsResponse);
    Console.Read();
}

public static async Task<string> QueryRover()
{
    await Task.Delay(5000);
    return "Doin' good!";
}

Revisé algunos ejemplos en MSDN y me parece que este código debería estar funcionando, pero en su lugar, aparece un error de compilación en la línea que contiene "await QueryRover ();" ¿Me estoy volviendo loco o está pasando algo raro?

Respuestas a la pregunta(1)

Su respuesta a la pregunta