AsyncCompletedEventArgs.RaiseExceptionIfNecessary Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Genereert een door de gebruiker opgegeven uitzondering als een asynchrone bewerking is mislukt.
protected:
void RaiseExceptionIfNecessary();
protected void RaiseExceptionIfNecessary();
member this.RaiseExceptionIfNecessary : unit -> unit
Protected Sub RaiseExceptionIfNecessary ()
Uitzonderingen
De eigenschap Cancelled is true.
De Error eigenschap is ingesteld door de asynchrone bewerking. De InnerException eigenschap bevat een verwijzing naar Error.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u het gebruik RaiseExceptionIfNecessary in afgeleide klasse-eigenschappen gebruikt.
public class CalculatePrimeCompletedEventArgs :
AsyncCompletedEventArgs
{
readonly int numberToTestValue;
readonly int firstDivisorValue = 1;
readonly bool isPrimeValue;
public CalculatePrimeCompletedEventArgs(
int numberToTest,
int firstDivisor,
bool isPrime,
Exception e,
bool canceled,
object state) : base(e, canceled, state)
{
numberToTestValue = numberToTest;
firstDivisorValue = firstDivisor;
isPrimeValue = isPrime;
}
public int NumberToTest
{
get
{
// Raise an exception if the operation failed or
// was canceled.
RaiseExceptionIfNecessary();
// If the operation was successful, return the
// property value.
return numberToTestValue;
}
}
public int FirstDivisor
{
get
{
// Raise an exception if the operation failed or
// was canceled.
RaiseExceptionIfNecessary();
// If the operation was successful, return the
// property value.
return firstDivisorValue;
}
}
public bool IsPrime
{
get
{
// Raise an exception if the operation failed or
// was canceled.
RaiseExceptionIfNecessary();
// If the operation was successful, return the
// property value.
return isPrimeValue;
}
}
}
Public Class CalculatePrimeCompletedEventArgs
Inherits AsyncCompletedEventArgs
Private numberToTestValue As Integer = 0
Private firstDivisorValue As Integer = 1
Private isPrimeValue As Boolean
Public Sub New( _
ByVal numberToTest As Integer, _
ByVal firstDivisor As Integer, _
ByVal isPrime As Boolean, _
ByVal e As Exception, _
ByVal canceled As Boolean, _
ByVal state As Object)
MyBase.New(e, canceled, state)
Me.numberToTestValue = numberToTest
Me.firstDivisorValue = firstDivisor
Me.isPrimeValue = isPrime
End Sub
Public ReadOnly Property NumberToTest() As Integer
Get
' Raise an exception if the operation failed
' or was canceled.
RaiseExceptionIfNecessary()
' If the operation was successful, return
' the property value.
Return numberToTestValue
End Get
End Property
Public ReadOnly Property FirstDivisor() As Integer
Get
' Raise an exception if the operation failed
' or was canceled.
RaiseExceptionIfNecessary()
' If the operation was successful, return
' the property value.
Return firstDivisorValue
End Get
End Property
Public ReadOnly Property IsPrime() As Boolean
Get
' Raise an exception if the operation failed
' or was canceled.
RaiseExceptionIfNecessary()
' If the operation was successful, return
' the property value.
Return isPrimeValue
End Get
End Property
End Class
Notities voor overnemers
Als u uw eigen klasse hebt afgeleid van de AsyncCompletedEventArgs klasse, moeten uw alleen-lezen-eigenschappen de RaiseExceptionIfNecessary() methode aanroepen voordat u de eigenschapswaarde retourneert. Als de asynchrone werkrolcode van het onderdeel een uitzondering aan de Error eigenschap toewijst of de Cancelled eigenschap trueinstelt op, genereert de eigenschap een uitzondering als een client de waarde ervan probeert te lezen. Hiermee voorkomt u dat clients toegang hebben tot eigenschappen die mogelijk niet geldig zijn vanwege een fout in de asynchrone bewerking.