首页 > 其他分享 >神奇的Task.WaitALl

神奇的Task.WaitALl

时间:2022-11-20 16:55:58浏览次数:39  
标签:taskList Console wait Delay Task WriteLine WaitALl 神奇

Task.WaitAll的参数是Task列表,参数取值不同 运行的结果也不同

1.下边代码的运行结果是先打印"wait all"

for (int i = 0; i < 100; i++)
{
    taskList.Add(new Task(async () =>
    {
        await Task.Delay(5000);
        Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
    }));
}
taskList.ForEach(p=>p.Start());
await Task.Delay(1000);
Task.WaitAll(taskList.ToArray());
Console.WriteLine("wait all");

2.下边的结果是永远等待

for (int i = 0; i < 100; i++)
{
    taskList.Add(new Task(async () =>
    {
        await Task.Delay(5000);
        Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
    }));
}
//taskList.ForEach(p=>p.Start());
await Task.Delay(1000);
Task.WaitAll(taskList.ToArray());
Console.WriteLine("wait all");

3.下边的结果是先打印"wait all"

var taskList = new List<Task>();

for (int i = 0; i < 100; i++)
{
    var t1 =Task.Factory.StartNew(async ()=>
    {
        await Task.Delay(5000);
        Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
    });
    taskList.Add(t1);
}
Task.WaitAll(taskList.ToArray());
Console.WriteLine("wait all");

4.下边的结果是最后打印"wait all"

var taskList = new List<Task>();

for (int i = 0; i < 100; i++)
{
    var t1 =Task.Start(async ()=>
    {
        await Task.Delay(5000);
        Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
    });
    taskList.Add(t1);
}
Task.WaitAll(taskList.ToArray());
Console.WriteLine("wait all");

 

标签:taskList,Console,wait,Delay,Task,WriteLine,WaitALl,神奇
From: https://www.cnblogs.com/hzq3554055/p/16908872.html

相关文章

  • TD 神奇九转,基金
      TD神奇九转  : 黑线为阴跌,白线为红涨,当出现9转后,趋势会打嗝,或反转,若再如果出现13序列,趋势会耗尽。    TD序列        +号,出......
  • ProbeQueryTask
    1//创建查询任务2List<ProbeQueryTask>tasks=ReportQueryHelper.buildTasks(apiParams,headerMap);3List<JSONObject>results=Task......
  • TaskCompletionSource 类型
    原文地址:https://www.pluralsight.com/guides/task-taskcompletion-source-csharp定义: 可以将任何异步操作转换为Task用例: Asp.NetCore7中的IHost接口的扩展......
  • Datawahle — 2022年11月组队学习 — 李宏毅机器学习 — TASK02
    学习时间:2022年11月15-2022年11月16日学习内容:李宏毅机器学习视频P3和P4学习笔记 ......
  • 【王喆-推荐系统】前沿篇-(task2)GNN在Pinterest的应用
    学习总结(1)GraphSAGE的主要步骤是三步“采样-聚合-预测”:采样是指在整体图数据上随机确定中心节点,采样k阶子图样本。聚合是指利用GNN把k阶子图样本聚合成中心节点......
  • 神奇脑洞题解——USACO追查坏牛奶(CSGO894)
    COGS的这一题是超级满配版本比洛谷的要强力的多:894.追查坏牛奶-COGS额外要求是:求出最小割流量,同时求出割边最小,同时字典序最小的方案输出割掉的边最小割流量好求,最......
  • windows 服务器上任务计划程序(Task Scheduler) 被删除
    查询被删除的事件和操作人,到Windows事件查看器中查看。在Windows日志------>安全中能查到,筛选当前日志,在筛选器中事件ID是4699.这个是参考了官方文档判断出来ID,4699......
  • C++中 vector容器的神奇用法
    1.可以用简单的数据类型作为参数:#include<iostream>#include<vector>usingnamespacestd;intmain(){vector<int>data;data.push_back(1);data......
  • Java定时调度器(Timer、TimerTask)
    Timer它是一个计时器,可以有计划的对线程进行调用。构造方法: 其它方法:难点是schedule 与 scheduleAtFixedRate的区别移步:Timer中schedule方法和schedu......
  • 【转】phing用户手册之core task译文
    AvailableTask测试某资源或文件是否存在,并设置某属性为相应的值例子[html] ​​viewplain​​​​copy​​ <available ......