AsyncController方法声明,有助于理解语法

时间:2015-01-16 17:48:51

标签: c# .net asp.net-mvc-4 async-await

我希望为某些Web服务实现异步编码。

我遇到了a tutorial并试图按照它来实施它,但是我遇到了一个特定的部分。

我的例子

   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中显示为红色,显然在某处可以定义。

1 个答案:

答案 0 :(得分:0)

CalculatedPricingCompletedApiService内的委托方法。您需要查看服务类并添加它。话虽如此,我强烈建议在.NET中使用async / await进行异步操作。如果您使用的是.NET 4.0+,则没有理由不使用它。