如果您要解决以下问题,该怎么办?
目标是创建一个由1000个整数值组成的数组,将其初始化为0,然后使用2个线程将所有值递增,每个线程将使每个数组值递增1。
我用下面的代码做到了,但是我真的不确定我的解决方案还可以...
static async Task Main(string[] args)
{
var count = 100;
int[] array = new int[count];
Array.Clear(array,array.Length);
await Task.WhenAll(IncrementArray(array,"Task 1"),IncrementArray(array,"Task 2"));
Array.ForEach(array,Console.WriteLine);
}
static object obj = new object();
static async Task IncrementArray(int[] array,string taskName)
{
for (var i = 0; i < array.Length; i++)
{
Console.WriteLine(taskName);
await Task.Delay(100);
lock (obj)
{
array[i]++;
}
}
}
感谢您的帮助!