Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Cómo: Utilizar componentes que admitan el modelo asincrónico basado en eventos

Muchos componentes le ofrecen la opción de realizar tareas de forma asincrónica. Los componentes SoundPlayer y PictureBox, por ejemplo, le permiten cargar sonidos e imágenes "en segundo plano", mientras el subproceso principal continúa ejecutándose sin interrupciones.

Utilizando métodos asincrónicos en una clase que admite Información general sobre el modelo asincrónico basado en eventos puede reducirse a asociar un controlador de eventos al evento de MethodNameCompleted del componente, como lo haría con cualquier otro evento. Cuando se llama al método de MethodNameAsync , la aplicación seguirá ejecutándose sin interrupciones hasta que se produzca el evento de MethodNameCompleted . Puede examinar el parámetro AsyncCompletedEventArgs del controlador de eventos para determinar si la operación asincrónica ha finalizado correctamente o se ha cancelado.

Para obtener información sobre la forma de utilizar controladores de eventos, vea Información general sobre controladores de eventos (Formularios Windows Forms).

El siguiente procedimiento muestra cómo utilizar la función de carga de imágenes asincrónica de un control PictureBox.

Para permitir que un control PictureBox cargue una imagen de forma asincrónica

  1. Cree una instancia del componente PictureBox en el formulario.

  2. Asigne un controlador de eventos al evento LoadCompleted.

    Compruebe aquí que no se haya producido ningún error durante la descarga asincrónica. Aquí también puede comprobar posibles cancelaciones.

    
    Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
    
    
    
    
    public Form1()
    {
        InitializeComponent();
    
        this.pictureBox1.LoadCompleted += 
            new System.ComponentModel.AsyncCompletedEventHandler(this.pictureBox1_LoadCompleted);
    }
    
    
    
    
    Private Sub PictureBox1_LoadCompleted( _
        ByVal sender As System.Object, _
        ByVal e As System.ComponentModel.AsyncCompletedEventArgs) _
        Handles PictureBox1.LoadCompleted
    
        If (e.Error IsNot Nothing) Then
            MessageBox.Show(e.Error.Message, "Load Error")
        ElseIf e.Cancelled Then
            MessageBox.Show("Load cancelled", "Canceled")
        Else
            MessageBox.Show("Load completed", "Completed")
        End If
    
    End Sub
    
    
    
    
    private void pictureBox1_LoadCompleted(object sender, AsyncCompletedEventArgs e)
    {
        if (e.Error != null)
        {
            MessageBox.Show(e.Error.Message, "Load Error");
        }
        else if (e.Cancelled)
        {
            MessageBox.Show("Load canceled", "Canceled");
        }
        else
        {
            MessageBox.Show("Load completed", "Completed");
        }
    }
    
    
    
  3. Agregue dos botones al formulario, los botones denominados loadButton y cancelLoadButton. Agregue controladores de eventos Click para iniciar y cancelar la descarga.

    
    Private Sub loadButton_Click( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) _
        Handles loadButton.Click
    
        ' Replace with a real url.
        PictureBox1.LoadAsync("http://www.tailspintoys.com/image.jpg")
    
    End Sub
    
    
    
    
    private void loadButton_Click(object sender, EventArgs e)
    {
        // Replace with a real url.
        pictureBox1.LoadAsync("http://www.tailspintoys.com/image.jpg");
    }
    
    
    
    
    Private Sub cancelLoadButton_Click( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) _
        Handles cancelLoadButton.Click
    
        PictureBox1.CancelAsync()
    
    End Sub
    
    
    
    
    private void cancelLoadButton_Click(object sender, EventArgs e)
    {
        pictureBox1.CancelAsync();
    }
    
    
    
  4. Ejecute la aplicación.

    A medida que vaya descargándose la imagen, podrá mover libremente el formulario, minimizarlo y maximizarlo.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft