在C#编程中,可以使用多种方式实现多线程,这里使用了Parallel.For()
,先看运行效果:
为了演示,示例中将
Sleep
时间设置成了200
毫秒。
示例代码:
using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp2
{
internal class Program
{
private static int[] _a;
private static int[] _b;
static void Main(string[] args)
{
Console.WriteLine("按任意键开始...");
Console.ReadKey();
_a = Enumerable.Range(1, 22).ToArray();
_b = Enumerable.Range(21, 22).ToArray();
Parallel.For(0, 2, new ParallelOptions { MaxDegreeOfParallelism = 2 }, (index) =>
{
Console.WriteLine($"线程索引:{index}");
for (var i = 0; i < 20; i++)
{
var data = Add(i);
Console.WriteLine($"第{i + 1}次结果:{data}");
}
});
Console.WriteLine("任务已完成");
Console.ReadKey();
}
private static int Add(int i)
{
Thread.Sleep(200);
var c = _a[i] + _b[i];
return c;
}
}
}
除此之外,还可以使用Task.Factory.StartNew()
来实现等待所有线程任务都完成的效果,详细示例请参考:
多线程咯