|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.01.2019, 12:42 | #1 |
Пользователь
Регистрация: 07.08.2016
Сообщений: 16
|
Как запустить поочередно несколько потоков?
Изучаю многопоточность. Столкнулся со следующей проблемой. Имеется такой вот гипотетический код:
Код:
Код:
Вопрос такой — Как мне сделать поочередное исполнение потоков строго в той последовательности в которой они создавались? Желательно как можно менее ресурсоемко. Описание кода — в методе Working класса WORK делается какая-то полезная работа, далее результат этой работы посредством делегатов delegWork и delegAnalysis отправляется в анон.метод класса ANALYSIS в котором производится анализ результатов работы класса WORK. Соответсвенно сама работа может выполняться быстрее, чем ее анализ, но сам анализ должен идти строго поочередно друг за другом, а не хаотично. PS. Lock и AutoResetEvent пробовал, но не помогло. Т.к. там доступ/событие получает тот поток, который первый постучался. Соответсвенно стучатся они, опять же, не в том порядке в котором были созданы, а как решит сама система. |
16.01.2019, 21:18 | #2 |
Пользователь
Регистрация: 07.08.2016
Сообщений: 16
|
На данный момент нашел такое решение с использованием BlockingCollection и запуском второго потока в конструкторе при инициализации WORK. Из небольших минусов — это всегда запущенный второй поток. Кто предложит улучшение данного кода?
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как запустить приложение несколько раз? | Trip | Помощь студентам | 2 | 04.09.2011 18:28 |
Пишу сканер протов. Как сделать в несколько потоков? | Dasharnb777 | Общие вопросы .NET | 2 | 17.11.2010 11:05 |