首页 > 编程语言 >C# Task 异步的一些流程简单测试 Task 测试 异步测试

C# Task 异步的一些流程简单测试 Task 测试 异步测试

时间:2024-01-18 11:34:59浏览次数:44  
标签:异步 Task 延时 int 毫秒 Result 测试 TEST

测试程序:

public class TAKS_TEST
{
    private readonly Dictionary<int, Task<T_TEST>> DataDic = new Dictionary<int, Task<T_TEST>>();

    private T_TEST GetRes(int i)
    {
        Thread.Sleep(i * 1000);
        return new T_TEST() { INT = i * 1000 };
    }

    private async Task<T_TEST> GetResAsync(int i)
    {
        return await Task.Run(() => GetRes(i));
    }

    public void GO()
    {
        for (int i = 0; i < 5; ++i)
        {
            Task<T_TEST> t_TEST = GetResAsync(i);
            DataDic.Add(i, t_TEST);
            t_TEST.ContinueWith(t =>
            {
                int idx = DataDic.First(pair => pair.Value == t).Key;
                Console.WriteLine($"第{idx}次延时{t.Result.INT}毫秒");
            });
        }
    }

    public void Wait()
    {
        List<Task<T_TEST>> tList = new List<Task<T_TEST>>();
        foreach (Task<T_TEST> t_TEST in DataDic.Values)
        {
            tList.Add(t_TEST);
        }
        Task.WaitAll(tList.ToArray());
        Console.WriteLine("已全部完成,全部结果遍历:");
        for (int i = 0; i < tList.Count; ++i)
        {
            Console.WriteLine($"第{i}次的 Result = {tList[i].Result.INT}");
        }
    }
}

public class T_TEST
{
    public int INT { get; set; }
}

主函数:

TAKS_TEST tAKS_TEST = new TAKS_TEST();
tAKS_TEST.GO();
Console.WriteLine("等待完成,统一打印结果:");
tAKS_TEST.Wait();

Console.ReadKey();

输出:

等待完成,统一打印结果:
第0次延时0毫秒
第1次延时1000毫秒
第2次延时2000毫秒
第3次延时3000毫秒
第4次延时4000毫秒
已全部完成,全部结果遍历:
第0次的 Result = 0
第1次的 Result = 1000
第2次的 Result = 2000
第3次的 Result = 3000
第4次的 Result = 4000

标签:异步,Task,延时,int,毫秒,Result,测试,TEST
From: https://www.cnblogs.com/huvjie/p/17972147

相关文章

  • 分层测试(Layered Testing Approach)
    提纲为什么要做分层测试怎么做分层测试分层测试的好处为什么要做分层测试从软件工程的角度,结合软件开发的V模型、MVC架构、测试金字塔,综合起来便于理解1.借鉴与软件开发的V模型从V模型的底部往右上方向,先做单元测试,再做集成测试一直到最后的验收测试。  2.来源于MVC架构......
  • 测试 【子牙-writing】 大模型
    参考:姜子牙大模型系列|写作模型ziya-writing开源!开箱即用,快来认领专属你的写作小助手吧封神榜:https://github.com/IDEA-CCNL/Fengshenbang-LM姜子牙大模型:https://huggingface.co/IDEA-CCNL/Ziya-LLaMA-13B-v1.1子牙-writing大模型:https://huggingface.co/IDEA-CCNL/Ziya-......
  • Stream (是异步版本的列表)、StreamBuilder(局部数据更新)
    Stream流Stream的字面意思是水流,Stream不像Future那样只会在未来获取一个值,它可以异步获取0个或者多个值。如果说Future是一个异步版本的int或者String,Stream则更像是异步版本的列表,List,List,列表里面可能会有0个或者多个元素。classMyHomePageextendsStatefulWidget{......
  • Fetch方法——一种简单合理的跨网络异步获取资源方式
    FetchAPI是一个JavaScript接口,用于访问和操纵HTTP管道的一些具体部分,例如请求和响应。FetchAPI提供了一个全局fetch()方法,一种简单,合理的来跨网络异步获取资源的方式。一个基本的fetch请求:fetch("http://localhost:4000/datas.json",{method:"POST",......
  • 记一次内衣网站渗透测试
    这站真大,不对,这站真圆.php的站随便随便一测一枚注入因为只能读取32位所以使用substring分开读取https://aaaa.com/1.php?id=210%20and%20extractvalue(1,concat(0x7e,(selectpasswordfromadminlimit1,1),0x7e))%20#https://aaaa.com/1.php?id=210%20and%20extractvalue......
  • 对诈骗(杀猪盘)网站的渗透测试
    今天朋友突然告诉我,某转买手机被骗了1200块钱,心理一惊,果然不出所料,那我来试试吧。要来了诈骗网站地址,打开是这种:果断收集一下信息:(由于留言骗子返还朋友钱款,暂时给他留点面子,打点马赛克)查看端口,一猜就是宝塔面板搭建开着80,那就访问一下:从官网查找客服软件的教程。发现后台路径为:/ad......
  • 一次菠菜网站的渗透测试
    从某个大哥手里拿到一个菠菜得day,是一个任意文件上传得0day,通过任意文件上传获取到webshell,但是扫描端口能看到开启了宝塔。然后就出现了下面的问题。使用哥斯拉的bypass插件可以执行命令。用户为WWW,宝塔的默认用户,接下来就是常规操作,提权、SSH登陆拿宝塔。先进行提权,上传脏牛然后......
  • Java异步编程详解
    在现代应用程序开发中,异步编程变得越来越重要,特别是在处理I/O密集型任务时。Java提供了一套强大的异步编程工具,使得开发者能够更有效地处理并发任务。本篇博文将深入探讨Java中异步编程的方方面面,通过具体例子详细说明异步编程的实践。异步编程的背景在传统的同步编程模型中,任务......
  • 23.电子商城接口自动化测试 框架进阶实战
    现有问题 可维护性差:一个api发生变化,需要修改用例文件可读性差:无法从代码中看出来明确的业务逻辑断言能力差:响应内容只能一层一层提取架构优化设计 @startumlscale700*500packageconfig<<Folder>>{}packageutils<<Folder>>{}packageapis<......
  • 19.电子商城接口自动化测试 实战
    目录 接口测试流程产品需求分析测试用例设计思路接口自动化脚本编写接口测试流程 @startuml:需求分析;:测试设计;:测试用例评审;:测试执行;:验收;:预发布;:上线;@enduml电子商城需求分析 商城管理后台商城客户端商城业务场景 ......