Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Propriedade AsyncCompletedEventArgs.UserState

Obtém o identificador exclusivo para a tarefa assíncrono.

Namespace:  System.ComponentModel
Assembly:  System (em System.dll)

public Object UserState { get; }

Valor de propriedade

Tipo: System.Object
Uma referência ao objeto que identifica exclusivamente a tarefa assíncrono; caso contrário, null Se nenhum valor tiver sido conjunto.

Se uma classe oferece suporte a vários métodos assíncrono ou várias chamadas de um único método, você pode determinar qual tarefa ocorre o MethodNameCompleted eventos observando o valor do UserState propriedade. Seu código irá precisar controlar esses símbolos, conhecidos sistema autônomo identificações de tarefas, sistema autônomo suas tarefas assíncrono correspondentes de início e conclusão.

O valor desta propriedade é definido durante a telefonar ao método assíncrono que iniciou a tarefa original.

O exemplo de código a seguir demonstra usando um AsyncOperation para controlar o tempo de vida de operações assíncrono. Este exemplo de código é parte de um exemplo maior fornecido para a classe System.ComponentModel.AsyncOperationManager.

using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Threading;
using System.Windows.Forms;


...


// This event handler updates the ListView control when the
// PrimeNumberCalculator raises the CalculatePrimeCompleted
// event. The ListView item is updated with the appropriate
// outcome of the calculation: Canceled, Error, or result.
private void primeNumberCalculator1_CalculatePrimeCompleted(
    object sender, 
    CalculatePrimeCompletedEventArgs e)
{
    Guid taskId = (Guid)e.UserState;

    if (e.Cancelled)
    {   
        string result = "Canceled";

        ListViewItem lvi = UpdateListViewItem(taskId, result);

        if (lvi != null)
        {
            lvi.BackColor = Color.Pink;
            lvi.Tag = null;
        }
    }
    else if (e.Error != null)
    {
        string result = "Error";

        ListViewItem lvi = UpdateListViewItem(taskId, result);

        if (lvi != null)
        {
            lvi.BackColor = Color.Red;
            lvi.ForeColor = Color.White;
            lvi.Tag = null;
        }
    }
    else
    {   
        bool result = e.IsPrime;

        ListViewItem lvi = UpdateListViewItem(
            taskId, 
            result, 
            e.FirstDivisor);

        if (lvi != null)
        {
            lvi.BackColor = Color.LightGray;
            lvi.Tag = null;
        }
    }
}


import System.*;
import System.Collections.*;
import System.Collections.Specialized.*;
import System.ComponentModel.*;
import System.Data.*;
import System.Drawing.*;
import System.Threading.*;
import System.Windows.Forms.*;



...


private void primeNumberCalculator1_CalculatePrimeCompleted(Object sender,
    CalculatePrimeCompletedEventArgs e)
{
    Guid guid = (Guid)e.get_UserState();
    if (e.get_Cancelled()) {
        String result = "Cancelled";
        ListViewItem lvi = UpdateListViewItem((Guid)e.get_UserState(),
            result);
        if (lvi != null) {
            lvi.set_BackColor(Color.get_Pink());
            lvi.set_Tag(null);
        }
    }
    else {
        if (e.get_Error() != null) {
            String result = "Error";
            ListViewItem lvi = UpdateListViewItem((Guid)e.get_UserState(),
                result);
            if (lvi != null) {
                lvi.set_BackColor(Color.get_Red());
                lvi.set_ForeColor(Color.get_White());
                lvi.set_Tag(null);
            }
        }
        else {
            boolean result = e.get_IsPrime();
            ListViewItem lvi = UpdateListViewItem((Guid)e.get_UserState(),
                result, e.get_FirstDivisor());
            if (lvi != null) {
                lvi.set_BackColor(Color.get_LightGray());
                lvi.set_Tag(null);
            }
        }
    }
} //primeNumberCalculator1_CalculatePrimeCompleted


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0

.NET Compact Framework

Compatível com: 3.5

XNA Framework

Compatível com: , 1.0

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft