我正在尝试创建一个简单的程序来测试Visual Studio 2012中的新.NET异步功能。我通常使用BackgroundWorkers来异步运行耗时的代码,但有时对于相对简单(但昂贵)的操作来说,这似乎是一种麻烦。新的async修饰符看起来很棒,但不幸的是,我似乎无法进行简单的测试。
以下是我的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!";
}
我查看了MSDN上的一些示例,看起来这段代码应该能正常工作,但是实际上在包含“await QueryRover();”的那一行却出现了编译错误。是我疯了还是出了什么问题?