检查Task.Factory.StartNew是否完成

本文关键字:是否 StartNew Task Factory 检查 | 更新日期: 2023-09-27 17:51:11

所以我目前被困在多线程与Task.Factory.StartNew。我试图做的是从API站点异步加载数据,然后使用数据后的权利。

I tried to do:

var task = Task.Factory.StartNew(loadSummoner).ContinueWith(init);
private async void loadSummoner() {
    summoner = await riotApi.GetSummonerAsync(region, summonerName);
    leagues = await summoner.GetLeaguesAsync();
}
private void init(Task task) {
    lblSummonerName.Content = summoner.Name;
}

但是这不起作用,因为它只是一个调用序列,而不是从第一个调用完成时开始的继续。最好的方法是什么?

提前感谢!

检查Task.Factory.StartNew是否完成

你的LoadSummoner方法应该返回Task:

private async Task LoadSummonerAndLeaguesAsync() {
    summoner = await riotApi.GetSummonerAsync(region, summonerName);
    leagues = await summoner.GetLeaguesAsync();
}

那么你就像这样调用它:

LoadSummonerAndLeaguesAsync().ContinueWith(init);