![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 04.07.2010
Сообщений: 132
|
![]()
Если создаю поток по таймеру, каждые 50мс, то хоть как то работает.
Но если создаю бесконечный поток while do begin sleep(50); chekTp; end; А не таймером, то он постоянно приостанавливается. Хотя у него приоритет выше среднего. Вопрос как поправить, чтоб данный поток промерял цвет пикселя каждые 50мс и не приостанавливался переодически на 1 - 2 сек. Код:
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
![]()
Винда сама регулирует приоритет потоков. Так что если ей будет нужно, то хоть какой приоритет не ставь своему потоку, винда всё равно сделает по своему.
|
![]() |
![]() |
![]() |
#3 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
кто тебя надоумил такую хрень написать?
тут же нет никакой многопоточности! тебе надо сделать простой поток, генерирующий синхронное событие каждые N мс, и всё! хотя, чем тебя таймер не устраивает? Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 04.07.2010
Сообщений: 132
|
![]()
Не устраивает тем, что таймер во время сравнения изображений ничего не делает и тупо висит по 1-2 сек.
|
![]() |
![]() |
![]() |
#5 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Да, это не только отсутствие многопоточности, но и много другое
Synchronize(ChekTp); - это убивает всю параллельность, синхронизировать весь поток абсолютно бессмысленно TMyThread.ChekTp;begin Form1.ChekTP; end; - это делать очень опасно, нельзя обращаться к компонентам без синхронизации. Эм... хотя нет, всё нормально, ведь весь поток синхронизирован с главным потоком ![]() Приоритет потоков в данном случае не работает хотя бы из-за того, что всё выполняется в главном потоке. Короче, приоритеты вообще ни к месту Синхронизировали-синхронизировали, да пересинхронизировали |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 04.07.2010
Сообщений: 132
|
![]() |
![]() |
![]() |
![]() |
#8 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
del
50 мс отмерять с какой точностью надо? Можно вообще отказаться от таких интервалов и в побочном потоке мониторить условие через WaitForSingleObject()... Откуда тред должен каждые 50 мс считывать значение цвета пикселя? Это важно знать. Если это какой-то канвас, который меняется в основном потоке, то его надо будет лочить 20 раз в секунду или использовать критическую секцию, для синхронизации. Фигня получится. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
Последний раз редактировалось min@y™; 13.04.2016 в 18:46. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 04.07.2010
Сообщений: 132
|
![]()
Точность не критична вообще. главное чтоб небыло "пауз" в секунду. Цвет пикселя берется с экрана(из игры) с полоски жизней.
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 04.07.2010
Сообщений: 132
|
![]()
Точность не критична. Даже если будет разброс в 50-100мс. Главное чтоб пауз небыло в секунду. Цвет пикселя берется с экрана из игры. (полоска жизней)
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
зависает комп на 10 сек каждые 50 сек(примерно) | ололошенько | Помощь студентам | 0 | 17.09.2013 23:03 |
Программа блокировки клавиатуры на 15 сек | Vikctor | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 29.11.2010 12:10 |
Поток. Не получается создать поток. Выдает ошибки при запуске | bigory | Общие вопросы по Java, Java SE, Kotlin | 3 | 23.09.2010 00:40 |
Как округлить милисекунды в кол-во сек и мили сек? | XerSon | Общие вопросы Delphi | 2 | 09.06.2010 10:26 |