Timers in Silverlight or Javascript?
-
Friday, August 24, 2007 5:48 PM
So I found that you could create an empty Storyboard, set the duration and by adding a "Completed" delegate, you can do something then restart then storyboard.
But this feels like it's almost identical to SetTimeout. Any reason to choose one over the other? I suspect the storyboard may be less performant, merely because it is new, but I could be wrong??
Thoughts??
Dave
All Replies
-
Friday, August 24, 2007 5:50 PM
In 1.1 currently, the only way to do timers is with a storyboard, so that's why you see that method frequently. As for which is better in 1.0 I don't really know.
-
Friday, August 24, 2007 6:12 PM
I thought people used a HMLTimer in 1.1?? I haven't done too much 1.1, but I'm sure thats in there ?
-
Friday, August 24, 2007 6:16 PM
This is reason enough for me to use the storyboard method. I think I read somewhere that the HtmlTimer is going to be replaced somewhere down the line.
-
Friday, August 24, 2007 6:28 PM
Maybe that was it...I know there was a reason why they said to use storyboards in 1.1...
-
Tuesday, August 28, 2007 7:02 AM
THis shows a workaround by using an Animation Timer:
First set up an Animation Timer in your xaml...
<Canvas.Resources>
<Storyboard x:Name="timer">
<DoubleAnimation Duration="00:00:0.02" />
</Storyboard>
</Canvas.Resources>Then you can add an "tick" event handler and start up the timer..
timer.Completed += new EventHandler(timer_Completed);
timer.Begin();And finally, make sure you restart the timer in the timer_Completed event.
void timer_Completed(object sender, EventArgs e)
{
// ... do per tick stuff here...
// restart the timer
timer.Begin();
} -
Tuesday, August 28, 2007 10:18 AM
And finally, make sure you restart the timer in the timer_Completed event.
Actually, it's probably better design to set the RepeatBehavior of the Storyboard to "Forever". That will probably be a more accurate Timer than restarting it in the Completed event. Then, if you choose, you can Stop() the Storyboard, in the Completed event, based on some piece of data.
-
Tuesday, August 28, 2007 10:30 AM
Oh I wasn't aware that the Completed event still fires if the RepeatBehavior is forever. I'l have to try this.

