Показать сообщение отдельно
Старый 10.04.2012, 16:10   #5
Платон Александрович
Нуждающийся
 
Аватар для Платон Александрович
 
Регистрация: 05.10.2011
Адрес: Россия, Южно-Сахалинск
Сообщений: 66
Написано 42 полезных сообщений
(для 83 пользователей)
Ответ: Использование FastPointer

Сообщение от Halk-DS Посмотреть сообщение
На практике возникла проблема. Может кто сможет помочь, у меня во второй поток запущена функция вида:

Function UpdChunks()
   delay 1000
   For to - перебираем нужные чанки.
      If Chunk(x,y)=0 - если чанк в поле зрения и его не существует то:
         В этом месте создается меш, я делаю сразу на него ХайдЕнтити и в конце алгоритма, когда меш готов открываю его для рендера.
      EndIf
   Next
EndFunction
Результат странный. Как будто постройка чанка делается только на 1-2% из 100 и прерывается.

Кто нибудь уже пользовался библиотекой? Она нормальная? Или это я что то не то делаю?
У тебя поток, после прохода по циклу for, завершается (происходит выход из функции). Чтобы он работал постоянно нужно еще один внешний цикл.
А вообще забудь про мультипоточность в блице для чего-то кроме обычных программ, нет гарантии что 3д\2д будет корректно работать в разных потоках. На твоем-же примере:
Сообщение от Halk-DS Посмотреть сообщение
В этом месте создается меш, я делаю сразу на него ХайдЕнтити и в конце алгоритма, когда меш готов открываю его для рендера.
Когда только ты создал меш, он УЖЕ находится в списке рендерера, который в основном потоке УЖЕ имеет к нему доступ, и из-за асинхронности работы этих потоков ты просто рано или поздно схватишь MAV. Все эти библиотеки - костыли и хаки, и работать как положено они не будут.
Ты просто выбрал не тот инструмент.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Платон Александрович за это полезное сообщение:
Hulk-DS (10.04.2012), St_AnGer (10.04.2012)