Параллельная обработка, но объекты с одним и тем же идентификатором обрабатываются последовательно.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Параллельная обработка, но объекты с одним и тем же идентификатором обрабатываются последовательно.

Сообщение Anonymous »

Я использую веб-API ASP.NET Core 6. Я хотел бы обрабатывать объекты с одним и тем же идентификатором последовательно, параллельно с разными идентификаторами.
Для иллюстрации проблемы, мой объект выглядит следующим образом:

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

class Data
{
public int Id { get; set; }
public string o { get; set; }
}
Итак, следующий список:

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

var l = new List()
{
new Data() { Id = 1, o = "xxxxxx" },
new Data() { Id = 1, o = "yyyyyy" },
new Data() { Id = 12, o = "aaaaaaa" },
new Data() { Id = 12, o = "ccccccc" },
new Data() { Id = 97, o = "mmmmmmm" }
}
Я ожидаю параллельного существования трех «очередей». Один идентификатор обработки = 1, другой Id = 12 и третий Id = 97.
Я использовал Channel к

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

foreach(var x in channel.Reader.ReadAllAsync(cancellationToken))
данные для обработки в BackgroundService. Но это приводит к образованию одной длинной очереди, которая затем обрабатывает все последовательно.
Я ищу подсказки о том, как можно реализовать такое требование. На ум пришел Parallel.ForEach - где он группировал бы людей с одинаковым идентификатором и помещал их в один поток, но я не уверен, доступна ли эта функция группировки.

Подробнее здесь: https://stackoverflow.com/questions/786 ... quentially
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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