C# async await使用方法

news/2024/7/7 20:56:36

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

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://lihuaxi.xjx100.cn/news/1288457.html

相关文章

北上广深共享办公室市场概览

在北上广深这四个城市&#xff0c;共享办公室已经成为一种日益流行的办公模式。随着经济的快速发展和科技创新的不断推进&#xff0c;越来越多的企业开始青睐共享办公室&#xff0c;以适应灵活办公和协作办公的需求。那么&#xff0c;2023年共享办公室市场的前景如何呢&#xf…

DDR5这么快,为啥还能那么稳?

高速先生成员--姜杰 大家都在关注DDR5跑的有多快&#xff0c;高速先生却在关心它为什么能够跑的稳…… 内存的稳定性&#xff0c;离不开RAS功能。提起RAS&#xff0c;熟悉DDR的小伙伴们一定记得行地址选通信号&#xff08;Row Address Strobe, RAS&#xff09;&#xff0c;不…

Fiddler如何进行弱网测试

目录 前言 1、Fiddler设置 2、手机设置 3.设置模拟调制解调器的速度&#xff1a; 4.设置手机代理 前言 使用Fiddler对手机App应用进行抓包&#xff0c;可以对App接口进行测试&#xff0c;也可以了解App传输中流量使用及请求响应情况&#xff0c;从而测试数据传输过程中流量…

数据结构与算法--堆

最小堆C实现&#xff1a;&#xff08;可以插入一个数、删除最小值&#xff09; #include <iostream> using namespace std;const int DefaultSize 1000005;template<class T> class MinHeap{T* heap;int currentSize;int maxHeapSize;void siftDown(int start);v…

ElasticSearch 8.0+ 版本Windows系统启动

下载地址&#xff1a;https://www.elastic.co/cn/downloads/past-releases/winlogbeat-8-8-1 解压\elasticsearch\elasticsearch-8.5.1 进入bin目录&#xff0c;启动elasticsearch.bat 问题1&#xff1a; warning: ignoring JAVA_HOMED:\jdk1.8.0_271; using bundled JDK J…

CUGBACM22级暑假小学期训练-二分,二分答案

CUGBACM22级暑假小学期训练-二分,二分答案 A - A-B 数对 题意&#xff1a;找 A − B C A-BC A−BC的对数&#xff0c;已知 C C C&#xff0c;那么就是找对于每个数就是找 C B CB CB的数量 思路&#xff1a;二分找位置最大的 C B CB CB与位置最小的 C B CB CB&#xff0c…

leetcode474. 一和零(动态规划-java)

一和零 leetcode474. 一和零题目描述解题思路解法一 递归加缓存动态规划代码演示 动态规划专题 leetcode474. 一和零 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/ones-and-zeroes 题目描述 给你一个二进制字符串数组…

GO 交叉编译(跨平台编译)

起初是我编译成.exe文件时遇到了与64的平台系统不兼容这个问题&#xff0c;然后我进行了查询资料才知道&#xff0c;想要打包成别的平台能够正确运行的程序&#xff0c;需要保证架构的问题&#xff0c;下面我只是对我查询资料的一个总结&#xff0c;我踩了坑&#xff0c;希望后…