异步调用分页服务c#

正在从我的方法中调用以下服务

https://myservice?index=0&rows=500

index:偏移查询的结果集。服务将从该偏移量返回结果。默认值为0,即从第一个结果开始。

行:每个请求要返回的结果数。默认值为10,最大数量为500

我需要继续分页直到start参数达到响应JSON中的totalRows计数。 假设记录总数为10,000,我需要致电20次

是否可以以使第一个服务异步之后的后续服务调用的方式修改代码,以提高性能

public List<FinalOutputDetails> GetFinalOutput()
{
        List<FinalOutputDetails> FinalOutput = new List<FinalOutputDetails>();
        int totalRows = 500;
        int index = 0;
        int end = 500;
        while (index <= totalRows)
        {
            string result =CallRemoteService();  // call service https://myservice?index=0&amp;rows=500

            var patrialResultDetails = JsonConvert.DeserializeObject<ServiceResultDetails>(result);

            totalRows = patrialResultDetails.totalRows;

            FinalOutput.AddRange(patrialResultDetails);

            start += 500;
            end += 500;
        }
        return FinalOutput;
  }
zhuangwei519 回答:异步调用分页服务c#

是的, 使CallRemoteService()轻松实现为

async Task<string>CallRemoteService()

这意味着可以在第一次或其他调用返回结果之前多次调用此方法。

并称之为异步

Task.Run(async () => string result =await CallRemoteService() ... and do other job to add result to main total string builder here..);

使用此行,您的应用程序将等待结果。

但是我必须通知你。您将失去订单。如果您需要正确的订单,则意味着您必须先等待结果,然后再打电话。但这意味着您的问题是错误的。

本文链接:https://www.f2er.com/3144734.html

大家都在问