C#多线程编程Task任务

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

namespace Sample3
{
    class Program
    {
        static void Main(string[] args)
        {
            //task.Cancel() 取消任务
            //task.Wait() 等待任务执行完成
            Sample1();
            Console.WriteLine("-------------------------");
            Sample2();
            Console.ReadLine();
        }


        static void Sample1() {
            var task1 = new Task(() =>
            {
                Console.WriteLine("任务1 Begin");
                System.Threading.Thread.Sleep(2000);
                Console.WriteLine("任务1 Finish");
            });
            var task2 = new Task(() =>
            {
                Console.WriteLine("任务2 Begin");
                System.Threading.Thread.Sleep(3000);
                Console.WriteLine("任务2 Finish");
            });
            task1.Start();
            task2.Start();
            /* Task.WaitAll, 等待所有的任务执行完成
             * Task.WaitAny,等待任何一个任务完成就继续向下执行
             */
            Task.WaitAll(task1, task2);
            Console.WriteLine("All task finished!");
        }

        static void Sample2() {
            var task1 = new Task(() =>
            {
                Console.WriteLine("任务1 Begin");
                System.Threading.Thread.Sleep(2000);
                Console.WriteLine("任务1 Finish");
            });
            var task2 = new Task(() =>
            {
                Console.WriteLine("任务2 Begin");
                System.Threading.Thread.Sleep(3000);
                Console.WriteLine("任务2 Finish");
            });
            task1.Start();
            task2.Start();
            //ContinueWith就是在第一个Task完成后自动启动下一个Task
            var result = task1.ContinueWith<string>(task =>
            {
                Console.WriteLine("task1 finished!");
                return "This is task result!";
            });
            //回调信息
            Console.WriteLine(result.Result.ToString());
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smartsmile2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值