XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
YohAssakura

offline
Опыт: 125
Активность:
Polled wait
в чём отличие этой функции от простого sleep???
Старый 11.07.2009, 22:42
Freezen
Тут должен быть бред
offline
Опыт: 2,517
Активность:
ну вообще отличие в том, что PolledWait тормозится во время паузы игры, а Sleep - нет
Старый 12.07.2009, 00:34
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
если раскрыть PolledWait JNGPаком то там луп состоящий из 2-3 таймеров. поетому все используют таймеры и мало кто из мастеров/отцов/профессоров в jass'e используют вэйты.
Старый 12.07.2009, 12:14
SRes
1110101000
offline
Опыт: 9,997
Активность:
Если слушать всех кто говорит о потоках\тп\тп\тп, то в вейте шанс на убийство потока движком намного больше, в теории.
ИМХО, Юзать триггерслип далеко не преступление и не нубство. Также как и юзать БЖ. Если в БЖ нету утечек (серьезных), нету большого колва лишних действий - зачем мучать свой код ? Он становится только понятней, когда в нем все меньше объема. ( При пряморуком кодере, офк)
Юзать таймеры везде и всюду - это лишний гемор, обычно для атача делают через РБ, который достаточно небезопасен. ( сохранение\загрука меняют айдишники хенлдов ? Значит вся система положится =p)
А если не РБ - структуры (параллельные массивы), они вполне подходят, но есть проблема - это лишний гемор. Если надо "поспать" пару секунд, то ничего не будет. Ни разу у меня не было глюков с этими действиями. Короче, это бред задротов оптимизации, которые сами то и не знают как устроен движок вара.
Старый 12.07.2009, 12:21
agentex

offline
Опыт: 34,834
Активность:
Цитата:
если раскрыть PolledWait JNGPаком то там луп состоящий из 2-3 таймеров

если раскрыть поледвейт вот что увидим:
Код:
function PolledWait takes real duration returns nothing
    local timer t
    local real  timeRemaining

    if (duration > 0) then
        set t = CreateTimer()
        call TimerStart(t, duration, false, null)
        loop
            set timeRemaining = TimerGetRemaining(t)
            exitwhen timeRemaining <= 0

            // If we have a bit of time left, skip past 10% of the remaining
            // duration instead of checking every interval, to minimize the
            // polling on long waits.
            if (timeRemaining > bj_POLLED_WAIT_SKIP_THRESHOLD) then //2.0
                call TriggerSleepAction(0.1 * timeRemaining)
            else
                call TriggerSleepAction(bj_POLLED_WAIT_INTERVAL) //0.10
            endif
        endloop
        call DestroyTimer(t)
    endif
endfunction

Цитата:
Юзать триггерслип далеко не преступление и не нубство

как раз таки преступление. слип запросто может убить поток
Старый 12.07.2009, 12:37
Toadcop

offline
Опыт: 54,313
Активность:
Freezen правильно ответил на вопрос. впринцыпе всё О_О
другая фичя что слипы юзать нету толку... (тока если для тестов чего то...)

Отредактировано ShadoW DaemoN, 16.07.2009 в 18:29.
Старый 12.07.2009, 14:25
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 17:50.