icreator Posted December 17, 2010 Share Posted December 17, 2010 правильно ли делать слежку за событиями, в ответ на действия аддона так, чтобы такие же события от пользователя не обрабатывались: объявляем слежку common.RegisterEventHandler( OnEvetMY, "EVENT_1" ) а в вызываемой процедуре сразу обрубаем: function OnEvetMY ( pars ) common.UnRegisterEvent( "EVENT_1" ) ... Quote Link to comment Share on other sites More sharing options...
Setras Posted December 18, 2010 Share Posted December 18, 2010 либо Handler, но я не понял вопроса. P.S. I was not using google translate. Quote Link to comment Share on other sites More sharing options...
Setras Posted December 19, 2010 Share Posted December 19, 2010 Да, кстати, сейчас сообразил, если у тебя событие отслеживает более одного хендлера то лучше все таки хендлер отписывать а не все подряд. Quote Link to comment Share on other sites More sharing options...
SLA Posted December 19, 2010 Share Posted December 19, 2010 Quote: правильно ли делать слежку за событиями, в ответ на действия аддона так, чтобы такие же события от пользователя не обрабатывались: Я не понял вопроса, наверное. Имеется ввиду, что событие нужно поймать всего один раз, и прекратить слежку, так? Если так, то ДА, это делается именно так, с помощью common.UnRegisterEvent() или common.UnRegisterEventHandler().Но, как заметил Setras, командаcommon.UnRegisterEvent( "EVENT_1" )отписывает ВООБЩЕ ВСЕ функции аддона от отслеживания события "EVENT_1". Если в аддоне такая функция всего одна, то всё в порядке. Но, если их больше одной, то, наверное, лучше вот так:common.UnRegisterEventHandler( OnEvetMY, "EVENT_1" )такая команда отпишет только функцию OnEvetMY(), а остальные не тронет. Quote Link to comment Share on other sites More sharing options...
icreator Posted December 20, 2010 Author Share Posted December 20, 2010 понятно. а по части производительности? если события происходят например часто, скажем обработка списка почты, то лучше включать /выключать слежку или просто в подпрограмме-обработчике OnEvetMY сделать пару проверок? и еще вопрос - если на одно событие подписано несколько подпрограмм - то как они будут вызываться? Quote Link to comment Share on other sites More sharing options...
SLA Posted December 20, 2010 Share Posted December 20, 2010 Quote: а по части производительности? Если событие происходит редко, то можно не отписывать.Но если оно происходит довольно ЧАСТО, то тогда лучше подписываться только на тот момент, когда оно нужно, а потом отписываться.Quote: если на одно событие подписано несколько подпрограмм - то как они будут вызываться? По очереди. Но, в каком порядке - я не знаю. Никогда с этим не экспериментировал. Quote Link to comment Share on other sites More sharing options...
Recommended Posts