Llamado continuo a un web service usando un trigger #Silverlight

Quiero mostrarles un pequeño truco de como realizar un llamado continuo a un web service es muy útil para verificar datos o cambios en la base de datos, ojo esto no se debe usar si se desea crear un chat o cosas así puesto que es altamente ineficiente esto es algo que en realidad no se debe hacer pero aveces no tenemos el tiempo y esto es una solución rápida.

Lo que hago es generar un trigger de una animación  que tiene su respectivo tiempo de ejecución y que altera cualquier propiedad del objeto:


 <Image x:Name="ImageTriguer" Width="0" Height="0" Opacity="1" Source="Icons/icono.png">
 <Image.Triggers>
 <EventTrigger RoutedEvent="Image.Loaded" >
 <BeginStoryboard>
 <Storyboard x:Name="StoryBoardAnimation1">
 <DoubleAnimation Completed="DoubleAnimation_Completed"
 Storyboard.TargetName="ImageTriguer"
 Storyboard.TargetProperty="Opacity"
 From="1.0" To="0.0" Duration="0:0:20"
 AutoReverse="False" BeginTime="0" />
 </Storyboard>
 </BeginStoryboard>
 </EventTrigger>
 </Image.Triggers>
 </Image>

como ven debemos crear un evento en el código al momento en que se complete la animación llamado DoubleAnimation_Completed  hay es donde colocaremos el llamado al servicio y luego lo que hacemos es volver a comenzar la animación con el método begin para el StoryBoard

private void DoubleAnimation_Completed(object sender, EventArgs e)
 {
 CallMethodWebService();
 StoryBoardAnimation1.Begin();
 }

como ven es un truco muy útil pero muy ineficiente y que en realidad no se debe hacer pero nos saca de apuros.

espero les sirva.