AsyncCompletedEventArgs Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет данные для события MethodNameCompleted
.
public ref class AsyncCompletedEventArgs : EventArgs
public class AsyncCompletedEventArgs : EventArgs
type AsyncCompletedEventArgs = class
inherit EventArgs
Public Class AsyncCompletedEventArgs
Inherits EventArgs
- Наследование
- Производный
Примеры
В следующем примере кода показано использование AsyncOperation для отслеживания времени существования асинхронных операций. Этот пример входит в состав более крупного примера использования класса 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;
Imports System.Collections
Imports System.Collections.Specialized
Imports System.ComponentModel
Imports System.Drawing
Imports System.Globalization
Imports System.Threading
Imports 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;
}
}
}
' 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 Sub primeNumberCalculator1_CalculatePrimeCompleted( _
ByVal sender As Object, _
ByVal e As CalculatePrimeCompletedEventArgs) _
Handles primeNumberCalculator1.CalculatePrimeCompleted
Dim taskId As Guid = CType(e.UserState, Guid)
If e.Cancelled Then
Dim result As String = "Canceled"
Dim lvi As ListViewItem = UpdateListViewItem( _
taskId, _
result)
If (lvi IsNot Nothing) Then
lvi.BackColor = Color.Pink
lvi.Tag = Nothing
End If
ElseIf e.Error IsNot Nothing Then
Dim result As String = "Error"
Dim lvi As ListViewItem = UpdateListViewItem( _
taskId, result)
If (lvi IsNot Nothing) Then
lvi.BackColor = Color.Red
lvi.ForeColor = Color.White
lvi.Tag = Nothing
End If
Else
Dim result As Boolean = e.IsPrime
Dim lvi As ListViewItem = UpdateListViewItem( _
taskId, _
result, _
e.FirstDivisor)
If (lvi IsNot Nothing) Then
lvi.BackColor = Color.LightGray
lvi.Tag = Nothing
End If
End If
End Sub
Комментарии
Если вы используете класс, реализующий обзор асинхронной модели на основе событий, класс предоставит событие MethodNameCompleted
. При добавлении экземпляра делегата System.ComponentModel.AsyncCompletedEventHandler в событие вы получите сведения о результатах асинхронных операций в AsyncCompletedEventArgs параметре соответствующего метода обработчика событий.
Делегат обработчика событий клиентского приложения может проверка Cancelled свойство , чтобы определить, была ли отменена асинхронная задача.
Делегат обработчика событий клиентского приложения может проверка Error свойство , чтобы определить, произошло ли исключение во время выполнения асинхронной задачи.
Если класс поддерживает несколько асинхронных методов или несколько вызовов одного асинхронного метода, можно определить, какая задача вызвала событие MethodNameCompleted
, проверив значение UserState свойства . Код должен отслеживать эти маркеры, известные как идентификаторы задач, по мере запуска и завершения соответствующих асинхронных задач.
Примечания для тех, кто наследует этот метод
Классы, которые следуют асинхронной модели на основе событий, могут вызывать события для оповещений клиентов о состоянии ожидающих асинхронных операций. Если класс предоставляет событие MethodNameCompleted
, можно использовать AsyncCompletedEventArgs , чтобы сообщить клиентам о результатах асинхронных операций.
Вы можете сообщить клиентам больше сведений о результатах асинхронной операции, чем AsyncCompletedEventArgs допускается. В этом случае можно наследовать собственный класс от класса и предоставить дополнительные переменные частного экземпляра AsyncCompletedEventArgs и соответствующие открытые свойства только для чтения. RaiseExceptionIfNecessary() Вызовите метод перед возвратом значения свойства, если операция была отменена или произошла ошибка.
Конструкторы
AsyncCompletedEventArgs() |
Устаревшие..
Инициализирует новый экземпляр класса AsyncCompletedEventArgs. |
AsyncCompletedEventArgs(Exception, Boolean, Object) |
Инициализирует новый экземпляр класса AsyncCompletedEventArgs. |
Свойства
Cancelled |
Возвращает значение, показывающее, была ли отменена асинхронная операция. |
Error |
Возвращает значение, показывающее, какая ошибка произошла в течение асинхронной операции. |
UserState |
Возвращает уникальный идентификатор для асинхронной задачи. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
RaiseExceptionIfNecessary() |
Вызывает предоставленное пользователем исключение в случае неудачного выполнения асинхронной операции. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |