C# 使用TASK处理多任务同时处理

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Task> taskList = new List<Task>();
            taskList.Add( Task.Factory.StartNew(()=> {
                Thread.Sleep(1000);
                Console.WriteLine("1秒执行结束");
            }));
            taskList.Add(Task.Factory.StartNew(() => {
                Thread.Sleep(800);
                Console.WriteLine("o.8秒执行结束");
            }));
            Console.WriteLine("执行中");
            TaskFactory taskFactory = new TaskFactory();
            taskList.Add(taskFactory.ContinueWhenAll(taskList.ToArray(), tArray =>
            { Thread.Sleep(200); Console.WriteLine("等待这些完成后执行"); }));
            //Console.WriteLine("执行完成");

            Console.Read();

        }
    }
}

  

时间: 2024-10-20 06:16:26

C# 使用TASK处理多任务同时处理的相关文章

uCos的多任务实现

uCos的多任务实现 作为操作系统(OS),最基本的一项服务就是提供多线程,在实时操作系统uCos里,多线程被称为多任务(Task).多任务并不是CPU能真正同时运行多个程序,实际是靠CPU在多个任务之间转换切换实现的,CPU轮番的服务于一系列的任务,这样CPU在宏观上好像在同时执行多个任务,实际在微观上CPU绝对是“单任务”的.这里要注意区别多线程和多核,如果系统里是有多个CPU,则可以实现真正的多线程了. 按照上面的思路,多任务的实现,就是要实现CPU在不同的任务之间切换.按照uCos作者的

C#多线程の遇见长耗时操作以及多任务

4.0用         Task.Factory.StartNew(()=>{});4.0以下用  ThreadPool.QueueUserWorkItem(()=>{})4.0以上用  Task.Run(()=>{}); 多任务: Task[] tasks = new Task[maxCurrent]; for (int i = beginId; i <= maxId; i += interval, counter++) tasks[counter] = new Task(wo

C#跟着阿笨玩一起玩异步Task实战(一)

一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理和完善此系列课程! 本高级系列课程适合人群如下: 1.有一定的NET开发基础并对多线程技术有一定了解和认识. 2.喜欢阿笨的干货分享课程的童鞋们. 希望大家在选择阿笨的 C#高级编程实战技能开发宝典课程系列的时候,根据自身的情况进行选择,由于本次课程不是零基础教学课程系列,所以说.NET基础差的到了没朋友的地

Android Asynctask与Handler的比较,优缺点区别,Asynctask源码

1  AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. 使用的优点: l  简单,快捷 l  过程可控 使用的缺点: l  在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来. 2 Handler异步实现的原理和适用的优缺点 在Handler 异步实现时,涉及到 Handler, Loo

我(webabcd)的文章索引

[最后更新:2014.08.28] 重新想象 Windows Store Apps 系列文章 重新想象 Windows 8 Store Apps 系列文章 重新想象 Windows 8 Store Apps (1) - 控件之文本控件: TextBlock, TextBox, PasswordBox, RichEditBox, RichTextBlock, RichTextBlockOverflow 重新想象 Windows 8 Store Apps (2) - 控件之按钮控件: Button,

HandlerThread应用(对比AsyncTask)

之前说过HandlerThread的原理:: Handler机制的分发中心就在Looper中的loop(),HandlerThread将loop转到子线程中处理,降低了主线程的压力,使主界面更流畅 其实说白了,创建HandlerThread,只是为了用此线程的looper  最终的runnable都还是post到主线程运行(已用Toast测试过) 最终的最终就是降低了Loop中的loop功耗,依旧在主线程中运行. 这里我以Launcher2的代码来说说HandlerThread的具体应用:: /

爬虫 + 数据分析 - 4 异步协程, selenium使用, 自动登录

一.单线程+异步协程 1.基本概念: event_loop:事件循环,相当于一个无限循环,我们可以把一些特殊函数注册(放置)到这个事件循环上, 当满足某些条件的时候,函数就会被循环执行.程序是按照设定的顺序从头执行到尾,运行的次数也是完全按照设定. 当在编写异步程序时,必然其中有部分程序的运行耗时是比较久的,需要先让出当前程序的控制权,让其在背后运行, 让另一部分的程序先运行起来.当背后运行的程序完成后,也需要及时通知主程序已经完成任务可以进行下一步操作, 但这个过程所需的时间是不确定的,需要主

C# 使用Task实现任务超时,多任务一起执行

简介:充分使用Task的异步功能代码实现:1.实现了任务超时 退出任务 2.多个任务一起执行 /// <summary>        ///做事 需要 ms秒 才能完成        /// </summary>        /// <param name="time"></param>        /// <returns></returns>        static async Task<str

.NET线程池技术实现多任务批量处理

一.多线程技术应用场景介绍 本期同样带给大家分享的是阿笨在实际工作中遇到的真实业务场景,请跟随阿笨的视角去如何采用基于开源组件SmartThreadPool线程池技术实现多任务批量处理.在工作中您是否遇到过如何快速高效的处理Job任务列表.如何通过多线程批量处理订单.如何多线程群发短信.如何批量上传图片到远程图片服务器或者云存储图片服务器.如何通过多线程让应用程序提高对CPU的利用率从而增加应用程序的处理效率,等等.如果您有遇到类似的业务场景的而感到烦恼的话,那么今天您看完阿笨的分享课后下次碰到