Hi Christian, Thanks for your reply very much!
> I do not know this code but if I look at the loop there is an > event removed from maEvents each time, so naturally maEvents > should run empty sooner or later. What must happen now to make > this an endless loop is that event.pEvent->fire() later on > pushes more events to maEvents which also create more events. > > It looks ok for me that firing an event can cause creation > of another event so in this case it might be that the > endless loop is actually correct since there may be always > something to do. Yes ,you are right,but I think that we still should change the operator into <. The following is my understanding: First,we must get what has happened inside event.pEvent->fire(). I found that it will get the timeout and makeInterruptableDelay,you can catch it in the void SlideShowImpl::notifySlideAnimationsEnded()(slideshow\source\engine\slideshowimpl.cxx),queryAutomaticSlideTransition() will obtain the timeout.please notice makeInterruptableDelay()(slideshow\source\inc\interruptabledelayevent.hxx),it will set the TimeoutEvent according to timeout,and then the event will be add into maEvents. I think the point is how to construct EventEntry,the second parameter indicates the time which is made up of timeout and ElapsedTime,actually I don't understand very much about the ElapseTime. OK,now we will get back to the while loop again. Let's reconsider this condition,the maEvents's time is made up of timeout and ElapsedTime,and then it will compare with ElapsedTime. If the timeout is set to 5,it will be ok,but if the timeout is set to 0,well then,what will happen? I think we should change the operator into < or catch the timeout if it is 0,and then set the value to 0.001. How do you think? BestRegards, LiuJianli ------------------------------------ RedFlag Chinese2000 Software Co.Ltd. [EMAIL PROTECTED]
