在C#中,可以使用多线程和任务并行处理任务。以下是一个使用C#参数的示例代码:
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
// 创建任务数组
Task[] tasks = new Task[5];
// 启动并行任务
for (int i = 0; i < tasks.Length; i++)
{
int taskNumber = i; // 存储当前任务编号,以便在任务内部使用
// 使用Task.Factory.StartNew方法启动任务,并传递参数
tasks[i] = Task.Factory.StartNew((obj) =>
{
int number = (int)obj; // 获取传递的参数
Console.WriteLine("Task {0} started with parameter {1}", taskNumber, number);
// 模拟任务执行时间
Task.Delay(1000).Wait();
Console.WriteLine("Task {0} finished", taskNumber);
}, i);
}
// 等待所有任务完成
Task.WaitAll(tasks);
// 所有任务完成后,输出完成消息
Console.WriteLine("All tasks finished");
Console.ReadLine();
}
}
在上面的示例中,我们首先创建了一个任务数组 tasks
,该数组用于存储并行任务。然后,我们使用循环在每个任务上启动并行任务。在任务内部,我们使用 Task.Factory.StartNew
方法启动任务,并传递参数。参数在任务内部被接收,并用于任务的处理逻辑。
在任务内部,我们首先输出任务编号和传递的参数。然后,我们使用 Task.Delay
方法模拟任务执行时间。最后,我们输出任务完成的消息。
在主方法中,我们使用 Task.WaitAll
方法等待所有任务完成。当所有任务完成后,我们输出 "All tasks finished" 的消息。
请注意,在此示例中,任务之间的执行顺序是并行的,并且每个任务使用不同的参数运行。
上一篇:并行任务所需时间比单个任务长。