Код: Выделить всё
internal MyElement[] HitTest((double x, double y) point, double scale)
{
ConcurrentBag geoms = new ConcurrentBag();
var point = new Point { X = point.x, Y = point.y };
Parallel.For(0,UIElements.Length, (d) =>
{
var element = UIElements[d];
if (element is IHitTestable ht && ht.HitTest(ref point,scale) geoms.Add(element);
});
return geoms.ToArray();
}
Проблема в том, что параметры Parallel.For() ожидают Action в качестве делегата для параллельного выполнения, тогда как мне нужен делегат Action для обработки локальных переменных, чтобы я мог написать метод времени компиляции с помощью ожидаемые типы аргументов.
Как предоставить Parallel.For() соответствующий делегат без анонимности?
Я верю в это проблема может быть до неприличия параллельной, но этого не произойдет, если будет конкуренция за кучу.
Подробнее здесь: https://stackoverflow.com/questions/786 ... rallel-for