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();//停止代码执行
}
}
}
C# 多线程
最新推荐文章于 2020-07-02 09:57:00 发布