Избегайте замыканий при вызове Parallel.For()C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Избегайте замыканий при вызове Parallel.For()

Сообщение Anonymous »

Я провожу тестирование элементов пользовательского интерфейса на попадание следующим образом:

Код: Выделить всё

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Избегайте замыканий при вызове Parallel.For()
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Parallel.ForEach и Parallel.For, похоже, ставят элементы в очередь в отдельных потоках.
    Гость » » в форуме C#
    0 Ответы
    91 Просмотры
    Последнее сообщение Гость
  • Когда типы замыканий наконец стали структурными типами?
    Anonymous » » в форуме C++
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Не могу понять, как компилятор использует созданные им классы для моих замыканий.
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Установка свойств в методе init с использованием замыканий
    Anonymous » » в форуме IOS
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»