You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF异步编程场景中可用什么替代Button的RaiseEvent方法?

解决方案

实现说明

你不需要新增额外按钮,也不需要使用委托,仅修改Button1_Click的事件逻辑即可实现完全相同的效果:

  • C# 中async Task类型的异步方法默认是热启动的:调用方法时任务就会立即启动执行,不需要等到调用await时才运行
  • 你之前主动触发Button2点击的逻辑,本质就是在等待func1完成前先启动了func2的任务,和直接调用两个异步方法的逻辑完全等价

修改后的代码

private async void Button1_Click(object sender, RoutedEventArgs e)
{
    // 同时启动两个异步任务,暂不等待
    Task<bool> task1 = func1();
    Task<bool> task2 = func2();
    // 等待两个任务全部执行完成
    await Task.WhenAll(task1, task2);
}

其他代码无需任何调整,修改后点击Button1就能实现两个标签同时计数的效果,和你之前用两个按钮的运行表现完全一致。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:27:00