Показать сообщение отдельно
Старый 23.02.2011, 21:11   #1
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Как контролировать процессы (threads) ?

Заинтересовала меня данная возможность - еще ни разу не использовал, но тут потребовалось...
В общем, происходит загрузка медии, и одновременно должна быть какая-нибудь дрянь (свистелко-перделка) на экране. Без этого щяс никуда

Ну и столкнулся с проблемой контроля за процессом.

В общем, система организована так:

Главный файл:
global Loading:THread=CreateThread(loadingFunc,null)

'Loading media

Loading.Detach()

repeat
 'Main cycle...
Сам процесс:

function LoadingFunc:object(data:object)
'подготовка свистопержедных картинок
while(true)
     if(CurrentThread()=loading)
     cls
     'отрисовка дряни
     flip
     endif 
wend 
end function

Вот здесь поперли лаги. Вылетают самые интересные ошибки, в основном на FLIP, бывает cls и drawimage всякие. Почему?

А если после детача и не залагало, так графика навернется обязательно - куда-нибудь да уедет изображение с экрана (SetOrigin 0,0) посавлено )

В общем, кто чем может, помогайте 6)
(Offline)
 
Ответить с цитированием