在C#中运行多个任务时,可以使用Task类来创建和管理任务。要查找每个任务所用的时间,可以使用Stopwatch类来计时。
以下是一个示例代码,演示如何在C#中运行多个任务并查找每个任务所用的时间:
using System;
using System.Diagnostics;
using System.Threading.Tasks;
class Program
{
static void Main()
{
// 创建一个Stopwatch对象来计时
Stopwatch stopwatch = new Stopwatch();
// 创建任务数组
Task[] tasks = new Task[3];
// 启动任务并记录开始时间
stopwatch.Start();
tasks[0] = Task.Run(() => DoTask(1));
tasks[1] = Task.Run(() => DoTask(2));
tasks[2] = Task.Run(() => DoTask(3));
// 等待所有任务完成
Task.WaitAll(tasks);
// 停止计时
stopwatch.Stop();
// 输出每个任务所用的时间
for (int i = 0; i < tasks.Length; i++)
{
Console.WriteLine("任务 {0} 所用的时间: {1} 毫秒", i + 1, tasks[i].AsyncState);
}
// 输出总共所用的时间
Console.WriteLine("总共所用的时间: {0} 毫秒", stopwatch.ElapsedMilliseconds);
}
static void DoTask(int taskId)
{
// 模拟任务执行
Task.Delay(1000).Wait();
// 记录任务结束时间
long endTime = Stopwatch.GetTimestamp();
// 计算任务所用的时间
long elapsedMilliseconds = (endTime - (long)Task.CurrentId) * 1000 / Stopwatch.Frequency;
// 将任务所用的时间存储在AsyncState属性中
Task.CurrentId = elapsedMilliseconds;
}
}
在上述代码中,我们首先创建了一个Stopwatch对象来计时。然后,我们创建了一个包含3个任务的任务数组,并使用Task.Run方法来启动每个任务。在每个任务中,我们使用Task.Delay方法来模拟任务的执行,并记录任务结束时间。然后,我们计算任务所用的时间,并将其存储在任务的AsyncState属性中。最后,我们输出每个任务所用的时间和总共所用的时间。
请注意,上述示例代码仅用于演示目的,实际应用中可能需要根据具体情况进行修改和优化。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云