Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2013, 14:15   #1
Xaker_Two
Пользователь
 
Регистрация: 03.02.2013
Сообщений: 73
Вопрос Таймер начинает лагать после запуска 3-его

На форме есть десять таймеров которые запускаются по нажатию клавиши если они выключены. Когда запускается 1-й таймер все ок, когда второй тоже вродебы нормально, но когда запукается третий то все они начинают тормозить! и при запуске каждого следующего таймера тормозов прибавляется. Это впринципе естественно. Но как это убрать? Чтобы таймеры не тормозили при запуске и себя и другие таймеры... может распихать их в разные потоки(я не знаю что это т.к. слышал об этом совсем чут чуть и не уверен что вообще думаю в правильном направлении)?? Помогите пожалуйста разжуйте или дайте полезных ссылок без заумных слов или примеры кода дайте... буду очень благодарен
Xaker_Two вне форума Ответить с цитированием
Старый 18.07.2013, 14:18   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
без заумных слов
Зачем 10 таймеров? Наверняка не правильный подход к задаче, обычно одного вполне достаточно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.07.2013, 14:21   #3
Xaker_Two
Пользователь
 
Регистрация: 03.02.2013
Сообщений: 73
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Зачем 10 таймеров? ...
обрабатывается 10 разных объектов и они должны обрабатываться с разной скоростью и одновременно а не поочередно
Xaker_Two вне форума Ответить с цитированием
Старый 18.07.2013, 14:30   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

достаточно ОДНОГО таймера. частота срабатывания должна быть не больше, чем интервал обработки самого быстрого объекта.
в обработчике обрабатываете массив (список, коллекцию или что у Вас там) всех объектов, для каждого вычисляете новые характеристики (если объект "медленный", то у него или прирост (изменение) характеристики будет мал, или он не в каждом срабатывании таймера будет обрабатываться..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.07.2013, 14:33   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
и одновременно
Может посмотришь в сторону сопроцессов? Thread в смысле.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.07.2013, 14:38   #6
Xaker_Two
Пользователь
 
Регистрация: 03.02.2013
Сообщений: 73
Восклицание

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
...в обработчике обрабатываете массив (список, коллекцию или что у Вас там) всех объектов
они должны начать обрабатываться не все и сразу а по нажатию клавиши и заканчивается их обработка в разное время как и начинается
Xaker_Two вне форума Ответить с цитированием
Старый 18.07.2013, 14:39   #7
Xaker_Two
Пользователь
 
Регистрация: 03.02.2013
Сообщений: 73
Вопрос

Цитата:
Сообщение от Stilet Посмотреть сообщение
Может посмотришь в сторону сопроцессов? Thread в смысле.
можно подробнее и какие нибудь ссылочки
Xaker_Two вне форума Ответить с цитированием
Старый 18.07.2013, 14:40   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я всё таки позволю проиллюстрировать свою мысль конкретным примером.
во, в этой теме был пример с шариками.
Может быть, стоит посмотреть?

Sharik2_src.rar

Sharik2_exe.rar
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.07.2013, 14:43   #9
Xaker_Two
Пользователь
 
Регистрация: 03.02.2013
Сообщений: 73
По умолчанию

щас посмотрим
Xaker_Two вне форума Ответить с цитированием
Старый 18.07.2013, 14:52   #10
Stertor
Заблокирован
 
Регистрация: 17.07.2013
Сообщений: 104
По умолчанию

Цитата:
На форме есть десять таймеров
Не думай о миллисекундах свысока)
Stertor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стереть параметры запуска после запуска Anton911 Общие вопросы Delphi 18 14.04.2013 15:17
Скрипт правильно работает только один раз, после начинает выдавать ошибку Xodock JavaScript, Ajax 2 23.07.2012 17:35
Освобождение памяти после запуска TOpenDialog t2skler Общие вопросы Delphi 8 14.09.2011 02:19
Ожидание создания окна после запуска процесса Аникейка Общие вопросы Delphi 3 26.01.2011 03:45
Удаление кнопки после первого запуска программы keet Помощь студентам 5 09.01.2010 23:35