小编Rj *_*aci的帖子

ReadToEndAsync是阻塞的,如何让它以异步方式运行?

我从我的控制器中的异步操作调用此getJson()函数.我有一个大文件列表,每个文件需要几秒钟才能处理ReadToEndAsync().即使我在等待它,ReadToEndAsync()也会阻塞.

如何异步调用ReadToEndAsync()?

public static async Task<T> getJson<T>(String url)
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(server + url);
    HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();

    String jsonString;
    //get the json string from the response
    using (var xx = response.GetResponseStream())
    {
        StreamReader reader = new StreamReader(xx, Encoding.UTF8);
        jsonString = await reader.ReadToEndAsync()
    }
}
Run Code Online (Sandbox Code Playgroud)

控制器:

_model.list.Add(await DataRetriever.getJson<ReviewModel>(url));
_model.list.Add(await DataRetriever.getJson<ReviewModel>(url));
_model.list.Add(await DataRetriever.getJson<ReviewModel>(url));
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc stream

2
推荐指数
1
解决办法
3368
查看次数

标签 统计

.net ×1

asp.net-mvc ×1

c# ×1

stream ×1