Re: Timer issue?
Jean-Luc Arnaud <jean-luc-E/[email protected]> Thu, 2 Aug 2018 09:57:31 +0200
| Newsgroups | gmane.comp.lang.realbasic.user |
|---|---|
| Organization | Centre Direct du Multimédia |
| Message-ID | <[email protected]> |
Many thanks to Tim, Jon and Giulio for their replies and their help. Increasing the period to 350 ms seems to be a solution, without effect on UI refresh. In addition, I think Tim's suggestion is a very good one, and I will apply it. One of the benefits is to set two different periods for UI refresh and end task management. Thank you very much. Jean-Luc Arnaud Le 01/08/2018 à 20:45, Tim Jones a écrit : > HI Jean-Luc, > > I'd recommend that you use 2 timers with what you're doing. One to > handle the UI updates and the second for your thread manager. > > -- > Tim > > >> On Aug 1, 2018, at 5:20 AM, Jean-Luc Arnaud <jean-luc-E/[email protected] >> <mailto:jean-luc-E/[email protected]>> wrote: >> >> Thanks for the idea, Giulio. >> >> Actually, the same timer is used in refreshing the UI interface. But >> I will try what you're suggesting and let you know. >> >> Jean-Luc Arnaud >> >> Le 01/08/2018 à 14:06, giulio-yFZTWCmGK/pWk0Htik3J/[email protected] a écrit : >>> Hi Jean-Luc, >>> >>> did you try to set the timer period to a considerably longer interval? >>> >>> just to understand if in the 10 milliseconds (that’s really a short >>> interval maybe also for a computer), the timer event is fired again >>> before completing its tasks, including set itself to off… >>> >>> you could try maybe a quarter of second, that anyway is nothing if >>> you are handling a series of files sequentially >>> >>> just a guess, >>> >>> Giulio >>> >>> Giulio Mastrosanti >>> *BitBazar srl* >>> 06 39737052 / 06 39725787 >>> Il 1 ago 2018, 12:43 +0200, Jean-Luc Arnaud >>> <jean-luc-E/[email protected]>, ha scritto: >>>> Hi all, >>>> >>>> I'm using a timer in order to terminate a thread treatment: >>>> >>>> - When finished, the thread sets a flag to True and terminates >>>> (verified), >>>> >>>> - In the Timer (with a period of 10), when the flag is on, the timer >>>> sets itself to off and then calls a method selecting the next file >>>> to be >>>> treated. >>>> >>>> Globally, this works but sometimes, I'm getting a "File already opened" >>>> error that I send when this method tries to open the same file that is >>>> already opened. This should never happen !!! It's like the method is >>>> called again whereas it has already opened a new file and tries to >>>> reopen it ! I have verified that this is always a new file, never the >>>> last treated file. >>>> >>>> Here is what I'm getting raising a Runtime error when this happens: >>>> >>>> RuntimeRaiseException >>>> MainWindow.MainWindow.Next_File%%o<MainWindow.MainWindow> >>>> MainWindow.MainWindow.Refresh_Timer_Action%%o<MainWindow.MainWindow>o<Timer> >>>> XojoFramework$13892 >>>> __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ >>>> __CFRunLoopDoTimer >>>> __CFRunLoopDoTimers >>>> __CFRunLoopRun >>>> CFRunLoopRunSpecific >>>> RunCurrentEventLoopInMode >>>> ReceiveNextEventCommon >>>> _BlockUntilNextEventMatchingListInModeWithFilter >>>> _DPSNextEvent >>>> -[NSApplication(NSEvent) >>>> _nextEventMatchingEventMask:untilDate:inMode:dequeue:] >>>> XojoFramework$4483 >>>> XojoFramework$4484 >>>> Application._CallFunctionWithExceptionHandling%%o<Application>p >>>> _Z33CallFunctionWithExceptionHandlingPFvvE >>>> XojoFramework$4483 >>>> -[NSApplication run] >>>> RuntimeRun >>>> REALbasic._RuntimeRun >>>> _Main >>>> main >>>> >>>> Can you help me understand what's happening ? >>>> >>>> TIA >>>> >>>> -- >>>> Jean-Luc Arnaud >>>> >> >