У меня 8-ядерный процессор с 8 ГБ памяти. Логически следующий код может быть выполнен параллельно, но поскольку цикл предоставляет более чем достаточно возможностей для параллелизма, поскольку у меня гораздо меньше доступных ядер, чем размер цикла. Во-вторых, каждое выражение делегата выделяет некоторую память для хранения свободных переменных.
В этом случае рекомендуется использовать параллель для?
также будет разделять 2 параллельные задачи на 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();
}