Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм ежедневника 
:(
    Опции темы
T0ohtik
Дата 4.5.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 9.2.2008

Репутация: нет
Всего: 1



Привет! Я хочу написать ежедневник с напоминаниями. Данные о событиях будут храниться в XML. Алгоритм его я представил следующий:
При запуске программа считывает данные в структуру. Поля этой структуры будут: дата, время, количество повторений. Далее программа выбирает данные соответствующие текущему дню и на каждое событие создается по потоку, в котором будит сравниваться текущее время со временем события.
Меня интересует, как можно модифицировать этот алгоритм в лучшую сторону, с какими трудностями могу столкнуться. И как наиболее оптимально сравнивать время, ведь, к примеру, потоков может быть и 100.

PM MAIL   Вверх
baldina
Дата 4.5.2008, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 1
Всего: 101



Цитата

на каждое событие создается по потоку

зачем? события можно хранить в очереди с приоритетами (например std::priority_queue). Регулярно (скажем 1 раз в секунду) проверяется событие с наивысшим приоритетом (ближайшем к текущему временем). При наступлении события оно обрабатывается и удаляется из очереди.
Если несколько событий могут иметь одно время, то возможны различные подходы:
1. Циклическая проверка вершины очереди, пока элементы удаляются
2. В качестве контейнера использовать std::multimap
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0745 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.