![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Доброго времени суток!
Как по другому реализовать планнировщик задач? Именно саму задачу... 1 задача = 1 TThread не вариант... Есть выход? ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
ну поидее достаточно ждать ближайшего события, а не всех.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Пожалуйста, можно чуточку подробнее? Как ждать? Что использовать? Где почитать чего-нибудь?
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
Хотите знать, чтобы применял я?
естественно нам нужно как то хранить будущие события, не важно как, для меня важно чтоб мы всегда с легкостью могли получить ближайшее событие. далее применяю WaitableTimer, устанавливая на нужное время(если добавляется новое более ближнее событие, то перезапускаем таймер). Создание таймера это CreateWaitableTimer. Установка времени таймера это SetWaitableTimer. Сброс таймера это CancelWaitableTimer. Уничтожение как обычно через CloseHandle. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Один таймер с некоторой частотой проверяет весь список задач и если время наступило делает какие-то действия для этой задачи. Вроде и тема недавно подобная была
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
(это вашим методом) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
http://msdn.microsoft.com/en-us/libr...12(VS.85).aspx
Довольно интересно. А вот как отреагировать на завершение работы таймера? Как об этом узнать и сделать "дело"? Ведь WaitForSingleObject повесит программу. Опять TThread... Аватар, тогда смысл предложенного Фениксом? Если можно обычный tTimer воткнуть.. Последний раз редактировалось Человек_Борща; 20.10.2011 в 19:54. |
![]() |
![]() |
![]() |
#8 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx 4-ый параметр. или Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 20.10.2011 в 20:02. |
||
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
То что я предложил имеет смысл в случае когда список задачен ограничен (десяток, ну несколько десятков). Если временная точность выполнения задания не секунда в секунду, то интервал таймера можно минуту и больше ставить. Если планировщик активен и редактируется список заданий, то это мало влияет на цикл таймера. Естественно список в памяти, в нем отмечается что задание запущено, завершено и прочее. И отсортирован по времени запуска заданий
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
![]() Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Реализация | stopvirus | Общие вопросы Delphi | 12 | 24.12.2010 19:44 |
Реализация SGN на С | Jos | Помощь студентам | 0 | 07.12.2010 23:12 |
Имитатор планировщика процессов Delphi | marat2201 | Помощь студентам | 0 | 14.06.2010 23:43 |
Задание для планировщика MySQL. Вычисление разницв в часах между датами,временем. | Avalonix | SQL, базы данных | 0 | 23.03.2010 13:47 |
Ctrl+Z реализация | delphin100 | Общие вопросы Delphi | 6 | 10.09.2008 06:59 |