我正在通过此博客了解如何增加负载。c关闭示例中的async关键字#
我需要了解以下方法帮助: 我认为:
() =>
{
}
意味着没有输入参数的闭包。为什么它在()=>之前添加“异步”? 为什么LoadMoreItemsAsync()方法返回IAsyncOperation> <>,但它调用'Task.Run'?它在返回之前运行了吗?
public IAsyncOperation<LoadMoreItemsResult> LoadMoreItemsAsync(uint count)
{
var dispatcher = Window.Current.Dispatcher;
return Task.Run<LoadMoreItemsResult>(
async() => // why aysnc here?
{
uint resultCount = 0;
var result = await source.GetPagedItems(currentPage++, itemsPerPage);
if (result == null || result.Count() == 0)
{
hasMoreItems = false;
}
else
{
resultCount = (uint)result.Count();
await dispatcher.RunAsync(
CoreDispatcherPriority.Normal,
() =>
{
foreach (I item in result)
this.Add(item);
});
}
return new LoadMoreItemsResult() { Count = resultCount };
}).AsAsyncOperation<LoadMoreItemsResult>();
}