我正在通過此博客瞭解如何增加負載。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>();
}