|
|
От: |
Alexmoon
|
|
| Дата: | 26.02.05 07:03 | ||
| Оценка: | |||
Все эти вещи по отдельности несут в себе не логичный смысл.Я бы сделал так: при старте программы сразу создал-бы поток.
Сбоку присобачил-бы очередь запросов. И событие, что очередь поменялась.
6. Инкапсулировал бы интерфейс добавления элементов в очередь и извлечения их оттуда.Порождённый поток ожидает события, просыпается, извлекает из очереди
первый запрос, обрабатывает, если очередь пуста — опять спит.
7. Отдельную конечную операцию работы с внутренним контейнером обрамил бы критической секцией.Очередь запросов, конечно, нужно делать потоко-безопасной. Но это мелочи.
9. В методе добавления элемента в список, в самом конце выставление события в сигнальное состояние.ГУЙ-поток при нажатии кнопки формирует запрос, помещает его в очередь,
поднимает событие и работает дальше.
11.В деструкторе полное сворачивание всех внутренних ресурсов.При завершении работы ГУЙ-потока ставим в очредь спец-запрос: "кончай".
По этому запросу дополнительный поток завершается.