|
Модераторы: gambit, Partizan |
|
SuprSonic |
|
||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 7.8.2016 Репутация: нет Всего: нет |
Изучаю многопоточность. Столкнулся со следующей проблемой. Имеется такой вот гипотетический код:
Многопоточность реализовал с помощью ThreadPool.QueueUserWorkItem т.к. он более экономичный. В данном случаем Console.WriteLine отрабатывает в каком-то отдельном потоке/потоках и в консоле я вижу примерно следующее:
Как можно заметить, цифры следуют не по порядку. Вопрос такой — Как мне сделать поочередное исполнение потоков строго в той последовательности в которой они создавались? Желательно как можно менее ресурсоемко. Описание кода — в методе Working класса WORK делается какая-то полезная работа, далее результат этой работы посредством делегатов delegWork и delegAnalysis отправляется в анон.метод класса ANALYSIS в котором производится анализ результатов работы класса WORK. Соответсвенно сама работа может выполняться быстрее, чем ее анализ, но сам анализ должен идти строго поочередно друг за другом, а не хаотично. PS. Lock и AutoResetEvent пробовал, но не помогло. Т.к. там доступ/событие получает тот поток, который первый постучался. Соответсвенно стучатся они, опять же, не в том порядке в котором были созданы, а как решит сама система. |
||||
|
|||||
SuprSonic |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 7.8.2016 Репутация: нет Всего: нет |
На данный момент нашел такое решение с использованием BlockingCollection и запуском второго потока в конструкторе при инициализации WORK. Из небольших минусов, это всегда запущенный второй поток. Кто предложит улучшение данного кода?
|
|||
|
||||
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |