从服务器获取响应时出现问题

问题描述 投票:0回答:1

我有这个问题:有一个函数发出http请求并返回数据流。我在控制台应用程序中测试了它 - 一切正常。现在,我将其添加到我的 wpf 应用程序中,但它冻结了 - serverAnswer fetch 命令未执行。没有错误或异常。程序似乎正在运行,但静止不动 请告诉我一些事情。

功能:

public async Task<Stream> GetStream()
{
    HttpClient CV18Client = new HttpClient();
    var serverAnswer = await CV18Client.GetAsync(adress, HttpCompletionOption.ResponseHeadersRead);
    return await serverAnswer.Content.ReadAsStreamAsync();
}
c# httprequest
1个回答
1
投票

最可能的情况 - 您的 WPF 应用程序冻结,因为 UI 线程正在等待任务(Web 请求)完成,但它在另一个线程中完成。为了确保您的任务结果将在其启动的线程中返回,您可以将

.ConfigureAwait(true);
附加到异步调用中。所以会是这样的:
var myStream = await myApiClient.GetStream().ConfigureAwait(true);

© www.soinside.com 2019 - 2024. All rights reserved.