Skip to main content

Ultimos Posts:

Configurando un timer desde code-behind con Silverlight 2.0
Fecha entrada: Jan 2008 Palabras Clave: Silverlight; Web Services; C# 3.0; VS 2008; .net framework 3.5; Visual Studio 2008; XAML;
Resumen post:En un desarrollo que estaba haciendo, necesitaba llamar a un servicio web cada X segundos, para obtener información y actualizarla en mi front end silverlight. Me puse a buscar un buen ejemplo sobre como hacer esto, pero me encontré con un montón de problemas, parece que la actualización de interfaz de usuario con multiples hebras no está fina en esta versión alfa.
Post:

En un desarrollo que estaba haciendo, necesitaba llamar a un servicio web cada X segundos, para obtener información y actualizarla en mi front end silverlight. Me puse a buscar un buen ejemplo sobre como hacer esto, pero me encontré con un montón de problemas, parece que la actualización de interfaz de usuario con multiples hebras no está fina en esta versión alfa.

Buscando por google encontre un ejemplo genial de Jesse Liberty, pero era para silverlight 1.0, por otro lado encontré un ejemplo en un foro. que estaba bastante bien.

Para ahorrar trabajo "al siguiente que venga" he mezclado los dos ejemplos, aquí tienes la implementación para la versión 1.1/2.0

Fichero XAML

  <Canvas.Resources>
    <Storyboard x:Name="myTimer"/>
  </Canvas.Resources>

Fichero code behind (C#)

    public void Page_Loaded(object o, EventArgs e)
    {
        // Código autogenerado de silverlight...
        InitializeComponent();

        // Definimos la duraciójn del timer (cinco segundos)
        // Definimos el metodo a llamar cuando el timer llegue a los 5 segundos
        this.myTimer.Duration = new Duration(new TimeSpan(0, 0, 5));
        this.myTimer.Completed += new EventHandler(myTimer_Completed);

        // Arrancamos el timer
        this.myTimer.Begin();            
    }


    void myTimer_Completed(object sender, EventArgs e)
    {
        // Aquí iría tu código para actualizar tu interfaz de usuario
        // (...)

        // Reiniciamos el tiemer (queremos hacer un poll cada X segundos)
        myTimer.Begin();

    }


Page (1) Of 1