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
相关产品推荐
相关产品推荐

