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