У меня 8-ядерный процессор с 8 ГБ памяти. Логически следующий код может выполняться параллельно, но поскольку цикл предоставляет более чем достаточно возможностей для параллелизма, так как у меня доступно гораздо меньше ядер, чем размер цикла. Во-вторых, каждое выражение делегата выделяет некоторую память для хранения свободных переменных. Рекомендуется ли использовать параллельный for в этом случае?
также разделение 2 параллельных for на 2 задачи улучшит производительность в этом случае ??
private static void DoWork()
{
int end1 = 100; // minimum of 100 values;
int end2 = 100; // minimum of 100 values;
Task a = Task.Factory.StartNew(
delegate
{
Parallel.For(0, end1, delegate(int i)
{
// independent work
});
}
);
Task b = Task.Factory.StartNew(
delegate
{
Parallel.For(0, end2, delegate(int i)
{
// independent work
});
}
);
a.Wait();
b.Wait();
}