gpt4 book ai didi

c# - 异步导致调试器跳转

转载 作者:太空宇宙 更新时间:2023-11-03 20:02:30 25 4
gpt4 key购买 nike

我有这个代码:

private async Task<DataSharedTheatres.TheatresPayload> GetTheatres()
{
var callMgr = new ApiCallsManager();
var fileMgr = new FileSystemManager();

string cachedTheatres = fileMgr.ReadFile(Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "TheatreTemp.txt"));
if (string.IsNullOrEmpty(cachedTheatres))
{
**string generalModelPull = await callMgr.GetData(new Uri("somecrazyapi.com/api" + apiAccessKey));**
bool saveResult = fileMgr.WriteToFile(Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "TheatreTemp.txt"), generalModelPull);
if (!saveResult)
{
testText.Text = "Failed to load Theatre Data";
return null;
}
cachedTheatres = fileMgr.ReadFile(Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "TheatreTemp.txt"));
}
return Newtonsoft.Json.JsonConvert.DeserializeObject<DataSharedTheatres.TheatresPayload>(cachedTheatres);
**}**

我在第一个突出显示的行(它命中)设置断点,然后我按 F10,调试器跳转到最后一个括号!我不明白为什么。

获取数据方法:

public async Task<string> GetData(Uri source)
{
if (client.IsBusy)
client.CancelAsync ();
string result = await client.DownloadStringTaskAsync (source);
return result;


}

最佳答案

因为这就是“等待”的作用。当您在异步方法中使用“await”时,它会告诉编译器您希望该方法在该点返回,然后仅在“等待”任务完成时才重新进入该方法。

关于c# - 异步导致调试器跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26479056/

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