У меня есть разреженная матрица из Extreme.Mathematics.LinearAlgebra
, например:
SparseMatrix<double> J = Matrix.CreateSparse<double>(amountI, amountJ);
Теперь я хочу заполнить ее в параллели l oop, поскольку ее параллельное заполнение будет намного быстрее.
Parallel.For(0, amountI, i =>
{
for (int j = 0; j < amountJ; j++)
J[i, j] = random.Next();
});
Это дает мне ошибку: исключение вне диапазона.
Однако, для нормального значения для l oop, оно работает довольно хорошо.
for (int i = 0; i < amountI; i++)
{
for (int j = 0; j < amountJ; j++)
J[i, j] = random.Next();
}
Также , если я использую двумерный массив вместо разреженной матрицы, он работает нормально.
double[,] M = new double[amountI, amountJ];
Parallel.For(0, amountI, i =>
{
for (int j = 0; j < amountJ; j++)
M[i, j] = random.Next();
});
Как мне добиться, чтобы заполнить разреженную матрицу параллельно, не сталкиваясь с исключениями из диапазона?