所以我目前坚持使用多线程Task.Factory.StartNew.我试图做的是从API站点加载数据异步,然后立即使用数据.
我试着这样做:
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;
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为它只是一个电话列车而不是第一个电话完成时的继续.做这个的最好方式是什么?
提前致谢!
你的LoadSummoner方法应该返回Task:
private async Task LoadSummonerAndLeaguesAsync() {
summoner = await riotApi.GetSummonerAsync(region, summonerName);
leagues = await summoner.GetLeaguesAsync();
}
Run Code Online (Sandbox Code Playgroud)
然后你就这样称呼它:
LoadSummonerAndLeaguesAsync().ContinueWith(init);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
644 次 |
| 最近记录: |