当前位置:实例文章 » C#开发实例» [文章]【C#】并行编程实战:任务并行性(上)

【C#】并行编程实战:任务并行性(上)

发布人:shili8 发布时间:2024-02-14 07:19 阅读次数:45

在C#中,任务并行性是一种强大的编程技术,可以帮助我们更有效地利用多核处理器的性能。通过并行执行多个任务,我们可以提高程序的性能和响应速度。在本文中,我们将介绍如何在C#中使用任务并行性。

首先,我们需要引入System.Threading.Tasks命名空间,该命名空间包含了用于并行编程的类和方法。

csharpusing System;
using System.Threading.Tasks;


接下来,我们可以使用Task类来创建并行任务。下面是一个简单的示例,创建一个任务来计算1到100的和:

csharpTask<int> task = Task.Run(() =>
{
 int sum =0;
 for (int i =1; i <=100; i++)
 {
 sum += i;
 }
 return sum;
});

Console.WriteLine("Sum: " + task.Result);


在上面的代码中,我们使用Task.Run方法创建了一个任务,该任务会在后台线程中执行指定的操作。在这个例子中,我们计算了1到100的和,并通过task.Result获取了计算结果。

除了使用Task.Run方法,我们还可以使用Task.Factory.StartNew方法来创建任务。下面是一个示例,创建一个任务来输出“Hello, World!”:

csharpTask task = Task.Factory.StartNew(() =>
{
 Console.WriteLine("Hello, World!");
});
task.Wait();


在上面的代码中,我们使用Task.Factory.StartNew方法创建了一个任务,该任务会在后台线程中执行指定的操作。在这个例子中,我们输出了“Hello, World!”。

除了创建单个任务,我们还可以创建并行任务组。下面是一个示例,创建一个并行任务组来计算1到100的和和平均值:

csharpTask<int> sumTask = Task.Run(() =>
{
 int sum =0;
 for (int i =1; i <=100; i++)
 {
 sum += i;
 }
 return sum;
});

Task<double> averageTask = Task.Run(() =>
{
 return sumTask.Result /100.0;
});

Task.WhenAll(sumTask, averageTask).ContinueWith(tasks =>
{
 Console.WriteLine("Sum: " + sumTask.Result);
 Console.WriteLine("Average: " + averageTask.Result);
});


在上面的代码中,我们创建了两个任务sumTask和averageTask,分别计算1到100的和和平均值。然后使用Task.WhenAll方法等待两个任务都完成后,输出计算结果。

通过任务并行性,我们可以更有效地利用多核处理器的性能,提高程序的性能和响应速度。在实际开发中,我们可以将耗时的操作放在后台线程中执行,避免阻塞主线程,从而提高用户体验。【本文未完,待续】

相关标签:c#开发语言
其他信息

其他资源

Top