|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.01.2014, 20:01 | #1 |
Gamedeveloper
Форумчанин
Регистрация: 11.07.2012
Сообщений: 149
|
Потоки, синхронизация
Всем привет!
Некоторое время назад, понадобилось сделать точную задержку при смене кадров до мили секунд. Выходит, что все трансформации(хождение по кадрам) требуется делать в потоках, реализовал в потоках. Но, появилась следующая проблема, модель при проигрывании начинает глючить, проверил все, в процедуре с трансформациями все нормально ошибок нету. Оказывается, как и предполагалось проблема заключается в десинхронизации потоков, как я понял, это из за того, что класс с мешами я создаю в главном потоке. Проблему удалось решить с помощь критических секций или метода "Synchronize();" - Проблема была решена, но! ФПС проседает очень сильно, к примеру без синхронизации с глюком при анимировании фпс 64 и не дергается. А тут 17-18. В чем может быть проблема ? И как синхронизировать потоки, без нагрузки на получается главный поток ?. |
08.01.2014, 20:08 | #2 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
надо полагать что в потоковой процедуре кроме Synchronize ничего нет?
|
08.01.2014, 22:52 | #3 |
Gamedeveloper
Форумчанин
Регистрация: 11.07.2012
Сообщений: 149
|
Вот как вызывается процедура трансформации из потока
Код:
Код:
Код:
|
08.01.2014, 23:09 | #4 |
Форумчанин
Регистрация: 06.08.2009
Сообщений: 144
|
лучше всего ВООБЩЕ забыть про Synchronize, а использовать SendMessage или PostMessage (на Handle главного окна, например).
1) не стопает ВСЕ потоки 2) нет проблем с синхронизацией из DLL А для не VCL, вообще использовать только TCriticalSection или Mutex |
09.01.2014, 00:00 | #5 | |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Цитата:
|
|
09.01.2014, 12:51 | #6 |
Gamedeveloper
Форумчанин
Регистрация: 11.07.2012
Сообщений: 149
|
|
09.01.2014, 17:03 | #7 |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
stalker1995s Используй таймер.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Потоки. Закрываются все потоки при ошибке в одном. | Son | Общие вопросы Delphi | 11 | 01.11.2013 09:32 |
Потоки, синхронизация, простой | denrubun | Общие вопросы C/C++ | 11 | 29.06.2013 13:37 |
Синхронизация | kuba1981 | PHP | 9 | 06.05.2013 11:39 |
Синхронизация БД | Bright-rider | БД в Delphi | 3 | 19.06.2012 07:32 |
синхронизация | perun47 | Microsoft Office Excel | 0 | 31.01.2012 22:35 |