我使用Microsoft.Bcl.Async NuGet包使用异步/等待(我的目标是.NET 4.0,而不是4.5)混淆了.NET 4异步
我是新来的异步/等待。下面的代码示例描述了我的问题。为什么突出显示的行不被调用?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AsyncTest
{
class Program
{
static void Main(string[] args)
{
Run();
Console.WriteLine("Got the value");
Console.ReadKey();
}
public static async void Run()
{
Console.WriteLine("Testing Async...");
var val = await AsyncMethod();
// HIGHLIGHTED LINE. WHY IS THIS LINE NOT CALLED?
Console.WriteLine("And the value is... {0}", val);
}
public static Task<long> AsyncMethod()
{
long myVal = 1;
for (long l = 0; l < 100000; l++)
{
myVal++;
Console.WriteLine("l = {0}", l);
}
return new Task<long>(() => myVal);
}
}
}
这不是原因,但您需要将循环放入任务 – gabba