Async await_WhenAll

ops/2025/1/11 9:58:48/

1.代码部分--WhenAll

namespace TaskWhenAll
{/// <summary>/// Interaction logic for MainWindow.xaml/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}public  async Task Calibration()//--Async修改{// 以异步方式执行命令// 异步调用同步的 CommandEx 方法Task task1 = Task.Run(() => CommandEx(10*10000));Task task2 = Task.Run(() => CommandEx(100 * 10000));Task task3 = Task.Run(() => CommandEx(1000 * 10000));// 等待所有命令异步完成await Task.WhenAll(task1, task2, task3);Debug.WriteLine($"Task1.2.3计算完毕");// 检查任务结果,返回失败信息}public void CommandEx(float num){for (int i = 0; i < num; i++){i = i-0;}Debug.WriteLine($"{num}计算完毕");}private async void  Button_Click(object sender, RoutedEventArgs e){await Calibration();}}
输出结果:

2.代码_WhenAll不等待

namespace TaskWhenAll
{/// <summary>/// Interaction logic for MainWindow.xaml/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}public  async Task Calibration()//--Async修改{// 以异步方式执行命令// 异步调用同步的 CommandEx 方法Task task1 = Task.Run(() => CommandEx(10*10000));Task task2 = Task.Run(() => CommandEx(100 * 10000));Task task3 = Task.Run(() => CommandEx(1000 * 10000));// 等待所有命令异步完成//await Task.WhenAll(task1, task2, task3);Debug.WriteLine($"Task1.2.3计算完毕");// 检查任务结果,返回失败信息}public void CommandEx(float num){for (int i = 0; i < num; i++){i = i-0;}Debug.WriteLine($"{num}计算完毕");}private async void  Button_Click(object sender, RoutedEventArgs e){await Calibration();}}
输出结果:

3.如果需要更细致观察线程切换,可以打印出执行每个单步的线程ID


http://www.ppmy.cn/ops/149135.html

相关文章

oracle闪回表

文章目录 闪回表案例1&#xff1a;&#xff08;未清理回收站时的闪回表--成功&#xff09;案例2&#xff08;清理回收站时的闪回表--失败&#xff09;案例3&#xff1a;彻底删除表&#xff08;不经过回收站--失败&#xff09;案例4&#xff1a;闪回表之后重新命名新表总结1、删…

ISP各模块功能介绍

--------声明&#xff0c;本文为转载整理------- ISP各个模块功能介绍&#xff1a; 各模块前后效果对比&#xff1a; 黑电平补偿&#xff08;BLC&#xff09; 在理想情况下&#xff0c;没有光照射的像素点其响应值应为0。但是&#xff0c;由于杂质、受热等其它原因的影响&…

conda管理Python库和虚拟环境

conda 是一个开源的跨平台软件包管理系统和环境管理系统&#xff0c;用于安装、运行和协调不同版本的软件包和其依赖项。它最初是为 Python 语言而设计的&#xff0c;但现在已经支持多种编程语言和工具。conda 可以轻松地创建和使用虚拟环境&#xff0c;这些环境可以独立于系统…

Java的 BIO、NIO、AIO?分别的作用和用法

在Java中&#xff0c;BIO、NIO和AIO代表了不同的I/O操作模式。以下是每个模型的简要描述以及相应的代码示例。 BIO (Blocking I/O) 作用&#xff1a;传统阻塞式I/O&#xff0c;适合低并发场景。用法&#xff1a;使用java.io包中的类&#xff0c;如ServerSocket来监听连接请求…

腾讯云AI代码助手编程挑战赛-厨房助手之AI大厨

腾讯云AI代码助手编程挑战赛-厨房助手之AI大厨 作品简介 身处当今如火箭般迅猛发展的互联网时代&#xff0c;智能聊天助手已然化身成为提升用户体验的关键利器&#xff0c;全方位渗透至人们的数字生活。 紧紧跟随着这股汹涌澎湃的时代浪潮&#xff0c;我毅然投身于极具挑战性…

el-tree拖拽光标错位问题

背景&#xff1a;el-tree实现的分类树增加拖拽功能后&#xff0c;当分类树由于数量较多产生滚动条&#xff0c;如果分类树已滚动&#xff0c;进行拖拽时会造成光标错位的问题: 原因&#xff1a;el-tree拖拽光标定位的高度并未加上滚动的高度解决&#xff1a;将滚动的样式属性放…

EFCore HasDefaultValueSql (续2 HasComputedColumnSql)

前情&#xff1a;EFCore HasDefaultValueSql EFCore HasDefaultValueSql (续1 ValueGeneratedOnAdd)-CSDN博客 小伙伴在使用 HasDefaultValueSql 时&#xff0c;对相关的 ValueGeneratedOnAdd, HasComputedColumnSql 也有了疑问&#xff1a; HasComputedColumnSql 对于计算…

[IoT]详细设计:智能农业监控系统

以下是基于IoT的智能农业监控系统网络拓扑的详细设计&#xff1a; 网络拓扑详细设计 1. 星型与网状混合拓扑 中心节点&#xff1a;本地服务器或集中控制器作为中心节点&#xff0c;负责协调和管理整个网络。传感器/执行器节点&#xff1a;分布在农田中&#xff0c;负责数据采…