繁体   English   中英

在 C# windows Phone 8.1 中创建异步等待队列

[英]Create Async Await Queue in C# windows Phone 8.1

我有图像的列表视图。 根据用户的关键字,过滤列表并添加细化列表作为列表视图的来源。 添加源后,我使用 Async/Await 方法从 Internet 下载列表视图中的图像。

这是我的问题:一旦用户输入关键字,就会创建一个列表并创建异步调用。 输入新关键字时,将替换另一个列表,并与前一个列表并行添加新的异步调用。 当异步调用数量增加时,UI 会出现相当大的滞后。

这就是我要的。 我需要创建一个大小为 5. 的异步调用队列,当添加第六个调用时。 它应该取消第一个异步调用并添加到队列中。

你不需要排队; 由于每个关键字都会替换前一个,因此您一次只需要下载一次。

这可以使用CancellationTokenSource来完成。 这是一种示例方法:

private CancellationTokenSource _cts;
private async Task RefreshListAsync(string keyword)
{
  if (_cts != null)
    _cts.Cancel();
  _cts = new CancellationTokenSource();
  var result = await DownloadListAsync(keyword, _cts.Token);
  _cts.ThrowIfCancellationRequested();
  MyList = result;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM