现在的位置: 首页 > 综合 > 正文

C# 多线程

2018年04月27日 ⁄ 综合 ⁄ 共 1048字 ⁄ 字号 评论关闭
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ParallelDemo1
{
    class Program
    {
        

        static void Main(string[] args)
        {  //使用Stopwatch进行精准计数
            Stopwatch timer = Stopwatch.StartNew();
            Stopwatch timer1 = Stopwatch.StartNew();
            Stopwatch timer2 = Stopwatch.StartNew();
            //并行任务一,实现正数相加
            Task<long> positiveTask = Task<long>.Factory.StartNew(() =>
                {
                    long posTotal = 0;
                    for (int i = 0; i < int.MaxValue; i++)
                    {   //汇总所有负数值
                        posTotal += i;
                    }
                    timer1.Stop();
                    return posTotal;
                });
            //并行任务二,实现负数相加
            Task<long> negativeTask = Task<long>.Factory.StartNew(() =>
            {
                long negTotal = 0;
                for (int i = 0; i > int.MinValue; i--)
                {   //汇总所有负数值
                    negTotal += i;
                }
                timer2.Stop();
                return negTotal;
            }); 
            //将正数结果和负数结果相加
            long combinedTotal = positiveTask.Result + negativeTask.Result;
            timer.Stop();//停止计算时间
            //输出结果
            Console.WriteLine("花费时间:{0}", timer.Elapsed);
            Console.WriteLine("正数相加:{0}", positiveTask.Result +","+ timer1.Elapsed);
            Console.WriteLine("负数相加:{0}", negativeTask.Result + "," + timer2.Elapsed);
            Console.WriteLine("合并相加:{0}", combinedTotal);
            Console.WriteLine("请按任意键退出");
            Console.ReadLine();//停止代码执行
        }


    }
}

抱歉!评论已关闭.