Метод Invoke
Метод Invoke статический.
Возвращается, когда каждый
делегат отработал. Кто завершился
раньше - не выводят; проверяют
итоговые значения в переменных.
Цикл по индексам -
For.
Синтаксис
Parallel.Invoke(action1, action2);
Пример
Давайте записать 1 и
2 в разные поля:
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
int a = 0;
int b = 0;
Parallel.Invoke(
() => { a = 1; },
() => { b = 2; });
bool res = a == 1 && b == 2;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте вывести значение
a после Invoke:
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
int a = 0;
int b = 0;
Parallel.Invoke(
() => { a = 1; },
() => { b = 2; });
int res = a;
Console.WriteLine(res);
}
}
Результат выполнения кода:
1
Пример
Давайте вывести значение
b:
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
int a = 0;
int b = 0;
Parallel.Invoke(
() => { a = 1; },
() => { b = 2; });
int res = b;
Console.WriteLine(res);
}
}
Результат выполнения кода:
2
Смотрите также
-
ForEach,
обход элементов -
ForEachAsync,
асинхронный обход -
PLINQ,
параллельный запрос -
Parallel,
обзор