powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Парралельный обход коллекции в строгом порядке с заданным числом потоков
25 сообщений из 90, страница 3 из 4
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39542995
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refregPu4koffОбъясните дураку чем не подходит
Код: c#
1.
Parallel.Foreach(<ConcurrentQueue>, new ParallelOptions { MaxDegreeOfParallelism = 4 }, item => {})

Нет гарантии, что будет в нужном порядке.

Метод AsOrdered
в PLINQ не нельзя задать ЛЮБОЕ число потоков, они зависят от кол-ва процессоров на клиенте

Точно нет гарантии с ConcurrentQueue?
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39542999
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123barrabas,
Так условие очерёдности в параллельной работе ты сам выдумал?
Заняться тебе нечем.
нет, оно было, просто реализовано не оптимально (обработка партиями и простой более быстрых потоков).
изменив время обработки сократилось минут 8-10, не час сорок а полтора стало на целевом периоде. это хоть и не много, но окончания процесса ждут люди чтобы начинать следующие действия и у них есть жесткие временные рамки в рамках закрытия месяца и формирования всех документов.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543011
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123barrabasпрерывать и перезапускать будет человек и читать лог тоже.
Вот и приведи задачу с точки зрения пользователя, а не ту что ты сам придумал.
пользователь запускает процедуру расчета конечной стоимости в каждой операции за период, период дробится по дням для визуализации и для понимания что можно потом работать с определенным меньшим периодом если что-то пошло не так. Описывать все ньюансы и обсуждать все бизнес-процессы нет желания.
просто не очень понятно какое имеет отношение к изначальному вопросу.
как раз формулирование абстрактной задачи и приводит к получению реальных ответов по теме, а вы уводите тему в другую сторону , но это вообще фишка данного форума и вообще рунета :).
в принципе я получил ответы, повторюсь, меня интересовало именно стандартное решение, которое я не знал, как написать рабочий код на многопоточных примитивах я занал вполне, но как и вы люблю лаконичность (не и ущерб читаемости и поддержке конечно)
В общем всем спасибо большое.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543016
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasне час сорок а полтора
А ты не сравнивал решения СубдJob ---- АппСерверКоллекции.
Вдруг там на порядок быстрее?
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543017
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasно это вообще фишка данного форума и вообще рунета :).
Конечно. Тут люди за хобби, а не за деньги решают ваши задачи.
Удачи!
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543019
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasкакой поток из пула запустит первую дату не важно. важно чтобы моментом старта обработки у меньшей даты был меньше или равен следующей по порядку.
а причина довольна простая, чтобы можно было остановить процесс обработки и точно сказать, что обработалось от сих до сих, а а не в разнобой.
Понятно, а я уж подумал, что это имеет отношение к автоматизации какого-то производства. Например, на кладбище есть четыре бригады гробокопателей, от лучшей 1-й (самая быстрая, аккуратная, наименее пьющая и т.п.) до худшей 4-й (пьяницы, прогульщики и т.п.), и вот надо оптимально распределять периодически поступающие пачки с энным количеством (иногда меньше 4) заявок))) Ну, или четыре станка в цеху разной эффективности (разное энергопотребление, скорость и точность изготовления), и т.п.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543033
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123barrabasно это вообще фишка данного форума и вообще рунета :).
Конечно. Тут люди за хобби, а не за деньги решают ваши задачи.
Удачи!
ветка "работа" немного в другом месте, удачи!!! и хорошего настроения
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543039
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123barrabasно это вообще фишка данного форума и вообще рунета :).
Конечно. Тут люди за хобби, а не за деньги решают ваши задачи.
Удачи!
ради интереса зашел в профиль посмотреть ваши темы, походил по первой странице, не увидел где вы предлагаете вознаграждение за ответы на ваши вопросы, немного в замешательстве :)
но вы держитесь там...
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543048
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabas,
Вы тоже держитесь).
На улицу и в публичные места, форумы не выходите.
Вас таких 1%, кто спрашивая на форуме, на него и пинает (обобщает).
А на заправке если предложат чаю не по делу, вы сразу в профиль полезете).
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543050
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRотношение к автоматизации какого-то производства.
Ну, я в его профиль не лазил. А по тз понял так, что нарезается пачка записей по датам grouo by
А далее, в очередь, пул потоков. А очерёдность в пуле не важна. Тогда быстрее на порядок.
Если важна, то медленно.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543058
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123barrabas,
Вы тоже держитесь).
На улицу и в публичные места, форумы не выходите.
Вас таких 1%, кто спрашивая на форуме, на него и пинает (обобщает).
А на заправке если предложат чаю не по делу, вы сразу в профиль полезете).
спасибо за совет, но думаю воздержусь.
на форум я не пиняю, яж не мазохист, я сам, как можно заметить, люблю пофлудить иногда.
особенности (большое число флуда) в рунете это факт, но я не говорил что это что-то омерзительное, это фишка
я как раз и написал, имея опыт общения, что если хочешь ответ по теме, лучше сформулировать ее абстрактно, что-бы не читать что нужно все переписать и переделать, т.к. для того чтобы давать такие советы нужно быть 100% в теме всех деталей и процессов, а описывать всю подноготную это не вариант по трудозатратам.

а профиль я посмотрел из образовательных целей, я думал что человек, который не дурак давать советы бесплатно, должен на своем примере показывать как это делается и возможно здесь это уже стало негласным правилом (как можно понять по моему профилю, я теперь очень редко посещяю форум), а я по старой привычке залез своим свиным рылом ....
но видимо все проще, есть 1% нас и 1% вас, в остальном все в порядке.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543066
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123barrabasне час сорок а полтора
А ты не сравнивал решения СубдJob ---- АппСерверКоллекции.
Вдруг там на порядок быстрее?
порядок врятли, т.к. вся работа как раз в БД, клиент только вызывает ХП с параметрами (период,в данном случае день, и пара настроек). все миллионы записей обрабатываются внутри БД без закачки на клиент, разумеется.
время организации цепочки вызовов бесконечно мало по сравнению в обработкой.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543069
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabas,
Да милый. Это старость.
Я про принципы публичного форума вам напомнил не от себя лично.
А вы как в анекдоте - Солдат! У вас сапоги не чищены!
))).
Кончайте впадать в старость и брюзжание.
Идите с миром.
На форуме всё хорошо. Мы флудим только на технические темы....для молодых.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543073
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasPetro123пропущено...

А ты не сравнивал решения СубдJob ---- АппСерверКоллекции.
Вдруг там на порядок быстрее?
порядок врятли, т.к. вся работа как раз в БД, клиент только вызывает ХП с параметрами (период,в данном случае день, и пара настроек). все миллионы записей обрабатываются внутри БД без закачки на клиент, разумеется.
время организации цепочки вызовов бесконечно мало по сравнению в обработкой.
Спс. Именно ваш опвт на земле я и хотел услышать.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543077
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasЕсть коллекция с датами.
нужно выполнить процедуру для каждой даты в несколько потоков но в строгом порядке (сортировка по дате).
Т.е. запускается сразу 4 потока с датой 1,2,3,4, время выполнения разное, закончилась обработка 2, сразу началась 5 и т.д.
Есть ли стандартный метод в дотнете (PLINQ там всякий)? Или нужно самому управлять созданием нового потока?

А можно поинтересоваться, зачем такая задача? И для чего управлять очередностью запуска потоков в строгом порядке, если по идее время завершения недетерминировано и в общем случае не совпадает по порядку старта?

Я бы делал так: Parallel.ForEach(список, Action). Количество потоков на усмотрение фреймворка.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543080
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, не дочитал до конца. Про Parallel.ForEach уже сказали )) Но я так и не понял, что это за такая бизнес-задача?
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543081
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JOBы в конкретном случае не приведут заметному ускорению обработки, но придется делать подсистему мониторинга и управления ими, т.к. клиент в простейшем случае отправляет ванвей вызов и дальше ничем не управляет.
есть процесс запускаемый клиентов из UI (тут согласен будет удобнее, с учетом создания центра управления такими заданиями), есть вариант запуска из консольной программы по своему шедулеру и логами и уведомлениями стандартными для всех процессов компании,не только связанными с БД, коих много как и систем (тут скорее наоборот, нужно привязать сессию в приложению).
иногда лучше потерять несколько секунд-минут, но иметь единообразную и всем участникам привычную архитектуру, чем каждую задачу решать по своему, пусть и наиоптимальнейшим образом.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543085
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Так, не дочитал до конца. Про Parallel.ForEach уже сказали )) Но я так и не понял, что это за такая бизнес-задача?
сама обработка происходит удалённо, а не на машине где организуется очередь, нагрузка на удаленный сервер не связана с кол-вом процессоров на клиенте, вот и все
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543092
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabas... по своему шедулеру ...Свой не нужен, есть готовый, из "коробки": Using the Task Scheduler
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543099
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasиногда лучше потерять несколько секунд-минут, но иметь единообразную и всем участникам привычную архитектуру, чем каждую задачу решать по своему, пусть и наиоптимальнейшим образом.
В этом всё дело.
У меня проект поменьше чем у вас, но когда я отпустил потоки без всякой очерёдности и управляемости в кавычках, у меня время уменьшилось в 3 раза.
Да. Это именно в моём контексте. Не в вашем.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543106
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кbarrabas... по своему шедулеру ...Свой не нужен, есть готовый, из "коробки": Using the Task Scheduler
вот об этом и говорил выше
задача должна быть сформирован абстрактна.
вы серьезно думаете что тут кто-то не знает про виндовый шедулер?
и люди бы писали свой (тут я участия почти не принимал), если бы удовлетворял нужным критериям, не в части запуска задач по расписанию, а именно управления задачами запуска, логами и уведомлениями разных приложений (как своих там и сторонних)и скриптов, цепочной задач (последовательными и параллельными группами) с настройкой поведения в зависимости от резулткода, с возможностью через удаленный UI продолжить прерванную цепочку в нужного места и т.д.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543111
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasАлексей Кпропущено...
Свой не нужен, есть готовый, из "коробки": Using the Task Scheduler
вот об этом и говорил выше
задача должна быть сформирован абстрактна.
вы серьезно думаете что тут кто-то не знает про виндовый шедулер?
и люди бы писали свой (тут я участия почти не принимал), если бы удовлетворял нужным критериям, не в части запуска задач по расписанию, а именно управления задачами запуска, логами и уведомлениями разных приложений (как своих там и сторонних)и скриптов, цепочной задач (последовательными и параллельными группами) с настройкой поведения в зависимости от резулткода, с возможностью через удаленный UI продолжить прерванную цепочку в нужного места и т.д.
причем через UI (управлеющего удаленной службой) понятного для простого юзера, чего про виндовый шедулер не скажешь совсем.
типа запустить задачу, простомтреть журнал запусков с фильтрами, по клику получить лог, перезапустить/продолжить(в случае с задачами в которых много действий остановленных при ошибке в одном из и т.д. )
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543126
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasвот об этом и говорил выше
задача должна быть сформирован абстрактна.
вы серьезно думаете что тут кто-то не знает про виндовый шедулер?
Агрессивный вы наш.
Этот топик не только для вас.
Я как новичок), с удовольствием прочту про эту возможность.
Потолерантнее немного).
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543141
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasвы серьезно думаете что тут кто-то не знает про виндовый шедулер?Да. Если люди не в состоянии написать банальный ThreadPool, не задавая вопросов на форуме, то вполне вероятно и такое.
barrabas... причем через UI (управлеющего удаленной службой) понятного для простого юзера, чего про виндовый шедулер не скажешь совсем.
типа запустить задачу, простомтреть журнал запусков с фильтрами, по клику получить лог, перезапустить/продолжить(в случае с задачами в которых много действий остановленных при ошибке в одном из и т.д. )Написать нужный UI для "виндового шедулера", вроде как, проще, чем писать всё с "нуля". Да и его родной UI, всяко, будет полезен.
...
Рейтинг: 0 / 0
Парралельный обход коллекции в строгом порядке с заданным числом потоков
    #39543143
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123barrabasвот об этом и говорил выше
задача должна быть сформирован абстрактна.
вы серьезно думаете что тут кто-то не знает про виндовый шедулер?
Агрессивный вы наш.
Этот топик не только для вас.
Я как новичок), с удовольствием прочту про эту возможность.
Потолерантнее немного).
приношу пардоны, не хотел обидеть никого.
просто совпало :)
...
Рейтинг: 0 / 0
25 сообщений из 90, страница 3 из 4
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Парралельный обход коллекции в строгом порядке с заданным числом потоков
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]