Сообщение Re[3]: Выбор Concurrent коллекции от 13.09.2016 16:16
Изменено 13.09.2016 16:17 VladCore
Здравствуйте, RQ, Вы писали:
RQ>Здравствуйте, VladCore, Вы писали:
VC>>Вы описали алгоритм, а спрашиваете про структуру данных.
RQ>Я описал сценарий работы множества потоков с данными и да, спрашиваю какая из стандартных структур данных лучше всего подойдет для описанного сценария.
Заведи BlockingCollection<Action> для обработчиков и IList<T> для самих элементов. В начале в the BlockingCollection<Action> добавь все нужные экшны. Работа будет завершена когда в the BlockingCollection<Action> не останется ни одного экшна. Это если в лоб делать. Но обычно одну и туже коллекцию на input и output не используют для "a workflow/a processing". Нет таких задач в которых и на входе workflow и на выходе структуры данных одинаковые.
Ты же в курсе в an Action из the BlockingCollection<Action> можно добавлять новые экшны?
Что не получается?
RQ>Здравствуйте, VladCore, Вы писали:
VC>>Вы описали алгоритм, а спрашиваете про структуру данных.
RQ>Я описал сценарий работы множества потоков с данными и да, спрашиваю какая из стандартных структур данных лучше всего подойдет для описанного сценария.
Заведи BlockingCollection<Action> для обработчиков и IList<T> для самих элементов. В начале в the BlockingCollection<Action> добавь все нужные экшны. Работа будет завершена когда в the BlockingCollection<Action> не останется ни одного экшна. Это если в лоб делать. Но обычно одну и туже коллекцию на input и output не используют для "a workflow/a processing". Нет таких задач в которых и на входе workflow и на выходе структуры данных одинаковые.
Ты же в курсе в an Action из the BlockingCollection<Action> можно добавлять новые экшны?
Что не получается?
Re[3]: Выбор Concurrent коллекции
Здравствуйте, RQ, Вы писали:
RQ>Здравствуйте, VladCore, Вы писали:
VC>>Вы описали алгоритм, а спрашиваете про структуру данных.
RQ>Я описал сценарий работы множества потоков с данными и да, спрашиваю какая из стандартных структур данных лучше всего подойдет для описанного сценария.
Заведи BlockingCollection<Action> для обработчиков и IList<T> для самих элементов. В начале в the BlockingCollection<Action> добавь все нужные экшны. Работа будет завершена когда в the BlockingCollection<Action> не останется ни одного экшна. Это если в лоб делать. Но обычно одну и туже коллекцию на input и output не используют для "a workflow/a processing". Нет таких задач в которых и на входе workflow и на выходе структуры данных одинаковые. Ну кроме сортировки.
Ты же в курсе в an Action из the BlockingCollection<Action> можно добавлять новые экшны?
Что не получается?
RQ>Здравствуйте, VladCore, Вы писали:
VC>>Вы описали алгоритм, а спрашиваете про структуру данных.
RQ>Я описал сценарий работы множества потоков с данными и да, спрашиваю какая из стандартных структур данных лучше всего подойдет для описанного сценария.
Заведи BlockingCollection<Action> для обработчиков и IList<T> для самих элементов. В начале в the BlockingCollection<Action> добавь все нужные экшны. Работа будет завершена когда в the BlockingCollection<Action> не останется ни одного экшна. Это если в лоб делать. Но обычно одну и туже коллекцию на input и output не используют для "a workflow/a processing". Нет таких задач в которых и на входе workflow и на выходе структуры данных одинаковые. Ну кроме сортировки.
Ты же в курсе в an Action из the BlockingCollection<Action> можно добавлять новые экшны?
Что не получается?