gpt4 book ai didi

c# - 如果互联网速度很慢并且 10 秒内没有收集到数据,我该如何停止 httprequest?

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:37 26 4
gpt4 key购买 nike

当我在网速较慢的情况下使用我的应用程序时,当我不断按下通过 httprequests 收集数据的不同按钮时,我会崩溃。我如何制作一个函数,以便如果我在 10 秒内没有收到数据,则应该取消从 httprequest 收集数据的尝试。

这是我的代码:

static public async Task<JObject> getCategories ()
{
var httpClientRequest = new HttpClient ();
try {
var result = await httpClientRequest.GetAsync ("http://localhost");
var resultString = await result.Content.ReadAsStringAsync ();

var jsonResult = JObject.Parse (resultString);

System.Diagnostics.Debug.WriteLine (resultString);

return jsonResult;
}

catch {

return null;
}

}



async void createCategory (object sender, EventArgs args)
{
var getCategory = await parseAPI.getCategories ();

if (getCategory != null) {

foreach (var currentItem in getItems["results"]) {
id = currentItem ["ID"].ToString ();
objectid = currentItem ["objectid"].ToString ();

//connected
}

}
} else {

//no connection

}
}

最佳答案

您可以使用 CancellationTokenSource其中提供了一个方法 CancelAfter() :

 var token = new CancellationTokenSource();
token.CancelAfter(10000); // after 10 secs
var result = await httpClientRequest.GetAsync ("http://localhost",token.Token);
var resultString = await result.Content.ReadAsStringAsync ();

这是一篇关于 using Cancellation with GetAsync 的文章您可能有兴趣阅读。

关于c# - 如果互联网速度很慢并且 10 秒内没有收集到数据,我该如何停止 httprequest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37061027/

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