C# async await使用方法

news2024/7/6 17:51:23

运行界面:
在这里插入图片描述
代码部分:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
     public static  string resultWeight { get; set; } = "";
        Stopwatch stopwatch = new Stopwatch();
        public Form1()
        {
            InitializeComponent();

            Task.Run(RunThread);
        }

        private async Task RunThread()
        {
    
            while (true)
            {
                stopwatch.Restart();
                var t = await AsyncWeight();

                Console.WriteLine($"状态:{t}     时间:{stopwatch.ElapsedMilliseconds}");

                // Task.Delay(10).Wait();
                Thread.Sleep(10);
                Console.WriteLine($"状态:{t}     时间:{stopwatch.ElapsedMilliseconds}");
            }
        }

        /// <summary>
        /// Async修饰的方法    调用方法  var t=  await  AsyncWeight();
        /// </summary>
        /// <returns></returns>
        public static async Task<bool> AsyncWeight()
        {
            var result = await WasteWeight();
            return result;
        }
        /// <summary>
        /// 等待
        /// </summary>
        /// <returns></returns>
        private static async Task<bool> WasteWeight()
        {
            return await Task.Run(() =>
            {
                int i = 0;
                bool b = true;
                bool Return = false;
                while (b)
                {          
                    if (resultWeight.Length > 2)  //得到重量
                    {
                        b = false;
                        Return = true;
                    }
                    else if (i >= 400)   //等待40秒
                    {
                        b = false;
                        Return = false;
                    }
                    i++;
                    Console.WriteLine($"i={i}");
                    // Task.Delay(1000).Wait();
                    Thread.Sleep(1000);
                }
                return Return;
            });
        }

        private void button1_Click(object sender, EventArgs e)
        {
            resultWeight = string.Empty;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            resultWeight = "1234566778";
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/699042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于 VORS、CCDM 模型、GeoDetector、GWR模型集成技术在城镇化与生态系统健康空间关系分析及影响效应中实践应用

城市群是一国经济发展水平的象征&#xff0c;也是一国经济发展到一定阶段的标志&#xff0c;我国城市群建设体量不断增加&#xff0c;将成为全球经济的核心&#xff0c;中国城市群的建设逐步引领全球进入到了21世纪的中国新时代。然而&#xff0c;高速的城镇化发展&#xff0c;…

Diffusion详细学习

解决报错 https://zhuanlan.zhihu.com/p/622238031 原理&#xff1a;https://zhuanlan.zhihu.com/p/612854566 解决内存溢出问题 溢出问题 总结下来&#xff1a;batch_size 和 n_samples 调节 原理学习 扩散模型是一种生成模型&#xff0c;用于生成与训练数据相似的数据。…

Swift 5.9 有哪些新特性(二)

文章目录 前言Noncopyable 结构体和枚举结束变量绑定的生命周期makeStream() 方法添加 sleep(for:) 到 ClockDiscarding task groups总结 前言 虽然 Swift 6 已经在地平线上浮现&#xff0c;但 5.x 版本仍然有很多新功能-更简单的 if 和 switch 用法、宏、非可复制类型、自定义…

(二十四)专题地图编制——制图数据操作

专题地图编制——制图数据操作 目录 专题地图编制——制图数据操作 1.复制地图数据框2.旋转制图数据框3.绘制坐标网格3.1经纬网3.2方里格网3.3参考格网 1.复制地图数据框 要复制地图数据框&#xff0c;请按照以下步骤操作&#xff1a; ①在 ArcMap 中打开地图文档。 ②在“表…

图片怎么转换成PDF格式?学会这些方法轻松转换

将多张图片合并成一个PDF文件&#xff0c;方便用户阅读和管理&#xff0c;避免了多个图片文件的混乱。并且PDF文件可以设置密码保护&#xff0c;避免图片被未经授权的人员查看、复制和编辑。此外&#xff0c;PDF文件可以设置禁止打印和禁止复制等权限&#xff0c;增强图片的安全…

mysql exists深入理解

前言&#xff1a; 某天用exists语句时发现跟我的理解有出入&#xff0c;我以前理解的exists是子查询的结果不会影响最终返回的结果&#xff0c;只要子查询查到有结果&#xff0c;则返回true,没有则返回false。即下面图中的sql&#xff0c;只要house_appraisal不是空表&#xf…

Android中实现Material3主题

Android中实现Material3主题 Material 3是由Google引入的一种设计系统&#xff0c;通过采用一套设计原则、指南和组件&#xff0c;提供统一直观的用户体验。 在本篇文章中&#xff0c;您将学习如何&#xff1a; 在您的Android应用程序中应用Material 3主题。如何使用Materia…

10.1寸工业三防平板应用于工业自动化生产

随着工业自动化的不断发展&#xff0c;工业生产中对于设备的要求也越来越高。在恶劣的工作环境中&#xff0c;工业设备需要具备防尘、防水、防震等功能&#xff0c;以确保设备的稳定运行和长期使用。10.1寸工业三防平板作为一种重要的工业自动化设备&#xff0c;广泛应用于各个…

【算法】算法效率分析 -- 时间空间复杂度

文章目录 概述时间复杂度常数阶 O ( 1 ) O(1) O(1)线性阶 O ( n ) O(n) O(n)对数阶 O ( l o g n ) O(logn) O(logn)线性对数阶 O ( n ∗ l o g n ) O(n*logn) O(n∗logn)次方阶 O ( n 2 ) O(n^2) O(n2) O ( n 3 ) O(n^3) O(n3) O ( n k ) O(n^k) O(nk) O ( n m ) O(nm) …

保持无损连接的BCNF分解算法

建议在看之前熟悉候选键的求法&#xff0c;不清楚的可以转到这里来&#xff1a; http://t.csdn.cn/fW30Q 步骤&#xff1a; INPUT:关系模式R以及在R上成立的函数依赖集F 1.初始化P{R} 2.若P中的所有关系模式S都是BCNF&#xff0c;则转步骤(4) 3.若P中有一个模式S不是BCNF&am…

Linux——IP协议2

目录 公网IP ​编辑 特殊的IP地址 IP地址的数量限制 私有IP地址和公网IP地址 路由 数据链路层 认识以太网 以太网帧格式 如何解包和封装&#xff0c;交付及分用 重谈局域网通信原理 认识MTU MTU对于TCP协议的影响 查看硬件地址和MTU ARP协议 模拟ARP请求 …

ros2内结合gazebo和rviz进行yolov8检测记录

前提&#xff1a;第一次接触ros2, 遇到的问题解决方式不一定准确&#xff0c;只是这次我尝试成功了&#xff0c;想和大家分享一下。 ubuntu20.04系统 目录 1. ros2 1.1 ros2是啥&#xff1f; 1.2 ros2的版本和ubuntu版本的对应关系&#xff0c;当下入门尤其是ubuntu20.04系…

【物理摩擦力图像】对摩擦力大小的因素研究图像

摩擦力与编程 两个相互接触并挤压的物体&#xff0c;当它们发生相对运动或具有相对运动趋势时&#xff0c;就会在接触面上产生阻碍相对运动或相对运动趋势的力&#xff0c;这种力叫做摩擦力&#xff08;Ff或f&#xff09;。 摩擦力与正压力&#xff08;B物体上的A物体产生的压…

数据库实验—复杂查询

查询20161151班的学生在大学一年级选修的课程情况&#xff0c;查询结果要显示学号(Sno)、姓名(Sname)、专业名(Mname)、选课的课程号(Cno)、选课的课程名称(Cname)及成绩&#xff08;Grade)&#xff0c;并按照学号、课程号升序排序 select Sno, Sname,Mname, Cno,Cname,Grade f…

Windows11安装WSL2(Ubuntu20.04)

以管理员身份打开 PowerShell&#xff0c;输入以下命令安装&#xff1a; wsl --install dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /no…

【历史上的今天】6 月 29 日:SGI 和 MIPS 合并;微软收购 PowerPoint 开发商;新闻集团出售 Myspace

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 6 月 29 日&#xff0c;在 2008 年的今天&#xff0c;CNNIC 发布《第 22 次中国互联网络发展状况统计报告》&#xff0c;截至 2008 年 6 月底&#xff0c;中国…

draggable里包裹的卡片,卡片里有个input,点击input聚焦无效。

在input标签上加pointerdown.stop.native <el-input placeholder"请输入" pointerdown.stop.native v-model"dataForm.nickName" :style"{width:180px}" suffix-icon"el-icon-search" lazy />

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002

文章目录 1. 前言2. 烧录数据准备2.1 OTP Wizard的下载与安装2.2 OTP Wizard的配置2.3 OTP寄存器烧录数据提取 3. OTP烧录和仿真的流程3.1 OTP烧录流程3.2 OTP仿真流程 4. 验证测试4.1 测试代码4.2 测试环境4.3 测试情况 5. 参考资料 1. 前言 本篇文章是TLD7002学习笔记的第三…

设计模式第18讲——中介者模式

目录 一、什么是中介者模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 代码结构 5.1 抽象中介者&#xff08;Mediator&#xff09;——LogisticsCenter 5.2 抽象同事类&#xff08;Colleague&#xff09;——Participant 5…

Beego之Bee安装(Windows)以及创建,运行项目

一.简介 Bee是什么&#xff1f; bee工具是一个为了协助快速开发 Beego 项目而创建的项目&#xff0c;通过 bee 可以很容易的进行 Beego 项目的 创建、热编译、开发、测试和部署 Beego中文文档 Beego中文文档: Beego简介 安装前提 在安装bee之前&#xff0c;首先得提前安装好Go的…