任务

1.启动任务

“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 成都创新互联是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于成都网站建设、成都网站设计、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!

    class Program
    {
        static void Main(string[] args)
        {
            //三种启动任务方式
            //第一种
            TaskFactory tf1 = new TaskFactory();
            Task t1 = tf1.StartNew(TaskMethod);
            //第二种
            Task t2 = Task.Factory.StartNew(TaskMethod);
            //第三种
            Task t3 = new Task(TaskMethod);
            t3.Start();
            Console.ReadKey();
        }
        private static void TaskMethod()
        {
            Console.WriteLine("Task ID:{0}", Task.CurrentId);
        }
    }

任务

2,连续任务

     class Program
    {
        static void Main(string[] args)
        {
            Task t1 = new Task(GetTask);
            Task t2 = t1.ContinueWith(NewTask);
            Task t3 = t2.ContinueWith(NewTask2);
            t1.Start();
            Console.ReadKey();
        }
        private static void GetTask()
        {
            Console.WriteLine("GetTask:{0}", Task.CurrentId);
            Thread.Sleep(1000);
        }
        private static void NewTask(Task t)
        {
            Console.WriteLine("NewTask:{0},pTask:{1}", Task.CurrentId, t.Id);
        }
        private static void NewTask2(Task t)
        {
            Console.WriteLine("NewTask2:{0},pTask:{1}", Task.CurrentId, t.Id);
        }
    }

任务

 

3,任务的层次结构

    class Program
    {
        static void Main(string[] args)
        {
            a1();
            Console.ReadKey();
        }

        private static void a1()
        {
            Task t = new Task(a2);
            Console.WriteLine("a1开始:{0}", t.Status);//a2任务状态:Created(该任务已初始化,但尚未被计划)
            t.Start();
            Console.WriteLine("a1过程:{0}", t.Status);//a2任务状态:WaitingToRun(该任务已被计划执行,但尚未开始执行)
            Thread.Sleep(3000);
            Console.WriteLine("a1结束:{0}", t.Status);//a2任务状态:RanToCompletion(成功执行了任务)
        }
        private static void a2()
        {
            Console.WriteLine("a2:{0}", Task.CurrentId);
            Task t = new Task(a3);
            t.Start();
        }
        private static void a3()
        {
            Console.WriteLine("a3:{0}", Task.CurrentId);
        }
    }

 任务

 

4,任务的结束

    class Program
    {
        static void Main(string[] args)
        {
            Task t = new Task(GetString, "你好");
            t.Start();
            Console.WriteLine(t.Result);
            Console.ReadKey();
        }
 
        private static string GetString(object s)
        {
            return s.ToString();
        }
    }

 任务

 

============================续.......................

任务类似于线程

 TaskStatus 枚举
成员名称说明
Canceled该任务已通过对其自身的 CancellationToken 引发 OperationCanceledException 对取消进行了确认,此时该标记处于已发送信号状态;或者在该任务开始执行之前,已向该任务的 CancellationToken 发出了信号。有关详细信息,请参阅任务取消。
Created该任务已初始化,但尚未被计划。?xml:namespace>
Faulted由于未处理异常的原因而完成的任务。
RanToCompletion已成功完成执行的任务。
Running该任务正在运行,但尚未完成。
WaitingForActivation该任务正在等待 .NET Framework 基础结构在内部将其激活并进行计划。
WaitingForChildrenToComplete该任务已完成执行,正在隐式等待附加的子任务完成。
WaitingToRun该任务已被计划执行,但尚未开始执行。
            Task t = new Task(() =>
            {
                Thread.Sleep(10000);
                Console.WriteLine("Task:{0}", Task.CurrentId);
                Console.WriteLine("thread:{0}", Thread.CurrentThread.ManagedThreadId);
            });
            //开始执行任务
            t.Start();
            //等待任务完成(线程阻塞)
            t.Wait();
            //当处理完成任务之后输出
            if (t.Status == TaskStatus.RanToCompletion)
                Console.WriteLine("Main:{0}", Thread.CurrentThread.ManagedThreadId);
 
            Console.ReadKey();

任务


本文题目:任务
转载来于:http://bzwzjz.com/article/pgcpgo.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站建设方案 H5网站制作 成都营销网站建设 外贸网站建设 网站建设 成都响应式网站建设 成都响应式网站建设公司 成都做网站建设公司 定制网站建设多少钱 网站建设方案 移动手机网站制作 成都网站制作 营销型网站建设 重庆企业网站建设 成都定制网站建设 成都网站设计 成都网站建设 成都网站设计公司 网站设计公司 成都网站设计 响应式网站设计 成都网站设计