Мне уже лет 5 твердят,что команда "wait" утечна. Объясните раз и навсегда,чем заменить команду ждать? Спасибо"

SсRealm, я скопировал PolledWait() и исправил немного, можешь скопировать и вызывать когда нужно. (Если я правильно исправил)
//Исправленный PolledWait()
    nothing Wait ( real duration ){ 
        timer t
        real timeRemaining
        if (duration > 0) {
            t = CreateTimer()
            TimerStart(t, duration, false, null)
            loop{
                timeRemaining = TimerGetRemaining(t)
                exitwhen timeRemaining <= 0
                if (timeRemaining > bj_POLLED_WAIT_SKIP_THRESHOLD) {
                    TriggerSleepAction(0.1 * timeRemaining)
                }else{
                    TriggerSleepAction(bj_POLLED_WAIT_INTERVAL)
                }
            }
            DestroyTimer(t)
            t = null
        }
    }
Это cJASS, если что
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
38
Можно смело юзать чистый TriggerSleepAction для всяких кветов или сценариев, но он продолжает работать в паузе игры, т.е. лучше реализовать свой PolledWait, устранив утечку. Для точности ниже 0.27 сек (зависит от машины) нужно юзать таймеры
21
Дайте мне ссылку как использовать таймеры и на PolledWait?
38
могу вот это предложить, для общего образования xgm.guru/p/wc3/code-flow-and-data-access-thread
28
Если это утверждение верно
Классика blizzard.j, объект удаляется, но переменная на него не обнуляется.
20
ScorpioT1000, нужно сначала уничтожать таймер, затем обнулять?
21
PT153:
Если это утверждение верно
Классика blizzard.j, объект удаляется, но переменная на него не обнуляется.
Ну так,а мы обнулим переменную))
KaneThaumaturge:
ScorpioT1000, нужно сначала уничтожать таймер, затем обнулять?
А как уничтожить таймер?
26
KaneThaumaturge:
ScorpioT1000, нужно сначала уничтожать таймер, затем обнулять?
а что, как то по другому делать это можно? оч интересно посмотреть как вы будете удалять таймер на который не будет ссылок)
28
Ну так,а мы обнулим переменную))
Она локальная, как ты её обнулишь вне её функции? Только если свой аналог напишешь.
20
Hate:
как и делается 70% всего на этом форуме - танцами с бубном
21
PT153:
Ну так,а мы обнулим переменную))
Она локальная, как ты её обнулишь вне её функции? Только если свой аналог напишешь.
custom script: u = null
у нас,триггерщиков, локалки так обнуляются , а у вас не знаю(
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.