gpt4 book ai didi

c# - 如何从非异步方法调用异步方法?

转载 作者:可可西里 更新时间:2023-11-01 02:58:52 27 4
gpt4 key购买 nike

<分区>

我有以下方法:

    public string RetrieveHolidayDatesFromSource() {
var result = this.RetrieveHolidayDatesFromSourceAsync();
/** Do stuff **/
var returnedResult = this.TransformResults(result.Result); /** Where result gets used **/
return returnedResult;
}


private async Task<string> RetrieveHolidayDatesFromSourceAsync() {
using (var httpClient = new HttpClient()) {
var json = await httpClient.GetStringAsync(SourceURI);
return json;
}
}

上面的方法不起作用,似乎没有正确返回任何结果。我不确定我在哪里缺少强制等待结果的声明?我希望 RetrieveHolidayDatesFromSource() 方法返回一个字符串。

下面的工作正常,但它是同步的,我相信它可以改进?请注意,下面是同步的,我想更改为异步的,但由于某种原因无法解决问题。

    public string RetrieveHolidayDatesFromSource() {
var result = this.RetrieveHolidayDatesFromSourceAsync();
/** Do Stuff **/

var returnedResult = this.TransformResults(result); /** This is where Result is actually used**/
return returnedResult;
}


private string RetrieveHolidayDatesFromSourceAsync() {
using (var httpClient = new HttpClient()) {
var json = httpClient.GetStringAsync(SourceURI);
return json.Result;
}
}

我错过了什么吗?

注意:出于某种原因,当我为上述异步方法设置断点时,当它到达 var json = await httpClient.GetStringAsync(SourceURI) 行时,它就离开断点,我可以'不要回到方法中。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com