You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何同时执行多个动画?附代码寻求并行动画实现方案

让两个动画并行执行的解决方案

嘿,这问题很常见——你现在的代码因为用了连续的await,所以会等第一个动画完全结束才开始第二个。要让它们同时跑,只需要用Task.WhenAll()来把两个动画任务打包一起等待就行,改起来超简单!

修改后的代码

public async void OnClicked2Async(object sender, EventArgs e) 
{
    btn_login.SetValue(IsVisibleProperty, true);
    // 先启动两个动画任务,暂不等待单个任务完成
    var loginBtnAnimation = btn_login.TranslateTo(0, 175, 1000);
    var novaContaBtnAnimation = btn_novaconta.TranslateTo(0, -60, 1000);
    
    // 同时等待两个动画任务完成,实现并行执行
    await Task.WhenAll(loginBtnAnimation, novaContaBtnAnimation);
}

为什么这样能行?

原来的写法里,await btn_login.TranslateTo(...)会暂停方法执行,直到这个动画做完才会往下走执行第二个动画。而现在我们先把两个动画任务启动(调用TranslateTo就会立刻开始动画,返回的Task代表动画的完成状态),然后用Task.WhenAll()告诉程序:等这两个任务都完成了再继续往下走。这样两个动画就会同时开始运行啦。

内容的提问来源于stack exchange,提问作者Maria Canelas

火山引擎 最新活动