【发布时间】:2016-05-06 11:31:14
【问题描述】:
我有一个搜索任务,它在可移植类库中向 API 发出请求,当用户在文本框中输入文本时,这按预期工作,但我担心大规模性能。当我们拥有庞大的用户群时,每次按键都会向这个 API 发出请求,我可以预见性能问题。
我已将 API 调用限制为仅在有效字符超过三个时触发,但我想进一步抑制这种情况。我可以在此之上实现一个计时器,但它感觉不是一个好的解决方案,并且不存在于 PCL 框架中。
是否有推荐的模式来实现这种类型的请求抑制?
private async Task GetClubs()
{
try
{
if (!string.IsNullOrWhiteSpace(ClubSearch) && ClubSearch.Replace(" ", "").Length >= 3)
{
Clubs = await dataService.GetClubs(ClubSearch);
}
}
catch (DataServiceException ex)
{
...
}
}
【问题讨论】:
-
为什么定时器感觉不好?
-
@Evk 定时器的实现对我来说有点 hacky。这是一个没有实际意义的话题,因为我需要它在不包含计时器实现的可移植类库中工作。我将更新我的问题以反映这一点。
-
而且至少有Task.Delay可用?
-
@Evk。好主意,没有考虑到。请创建一个答案,我会接受它作为正确的方法。
标签: c# .net search xamarin portable-class-library