C# AsyncController方法声明,帮助理解语法

C# AsyncController方法声明,帮助理解语法,c#,.net,asp.net-mvc-4,async-await,C#,.net,Asp.net Mvc 4,Async Await,我希望为一些web服务实现异步编码 我遇到了,并试图遵循它,并实施它,但一个具体的部分,我有麻烦 我的例子 public void CalculatePricingAsync(QuoteInput obj) { AsyncManager.OutstandingOperations.Increment(); var apiService = new ApiService(); ApiService.CalculatedPricingC

我希望为一些web服务实现异步编码

我遇到了,并试图遵循它,并实施它,但一个具体的部分,我有麻烦

我的例子

   public void CalculatePricingAsync(QuoteInput obj)
    {

        AsyncManager.OutstandingOperations.Increment();
        var apiService = new ApiService();
        ApiService.CalculatedPricingCompleted += (sender, e) =>
        {
            AsyncManager.Parameters["Pricing"] = e.Value;
            AsyncManager.OutstandingOperations.Decrement();
        };
        ApiService.CalculatedPricing(obj);

    }

    public JsonResult CalculatePricingCompleted(string[] pricing)
    {
        var jr = new JsonResult { Data = new { pricing } };
        return jr;
    }
ApiService类中不存在取自上面第一个方法的以下行。有人能解释一下这个表达的意义吗。我是否只是在ApiService类中创建了一个同名的方法并将其留空,它是否以某种方式与第二个方法一起工作。我不太清楚它在做什么,方法应该声明在哪里,确切应该包含什么

ApiService.CalculatedPricingCompleted += (sender, e) =>
        {
            AsyncManager.Parameters["Pricing"] = e.Value;
            AsyncManager.OutstandingOperations.Decrement();
        };

上面这一行中的>(CalculatedPricingCompleted)在visual studio中显示为红色,它显然是在某个地方定义的。

CalculatedPricingCompleted
ApiService
中的一个委托方法。您需要查看服务类并添加它。说到这里,我强烈建议在.NET中使用async/await进行异步操作。如果您使用的是.NET 4.0+,没有理由不使用它。

您必须使用.NET 4.0+MVC4吗?4.5+MVC5将使使用
async
/
wait
。。。(不一定更容易理解:))查看您提供的链接,没有提到
ApiService
。这是对您正在进行的工作的本地修改吗?是的,我将类和方法名称更改为我自己的名称。谢谢您的澄清。我并不局限于使用这种方法。我将看一看异步/等待操作。