AsyncCompletedEventArgs.RaiseExceptionIfNecessary Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Genererar ett undantag från användaren om en asynkron åtgärd misslyckades.
protected:
void RaiseExceptionIfNecessary();
protected void RaiseExceptionIfNecessary();
member this.RaiseExceptionIfNecessary : unit -> unit
Protected Sub RaiseExceptionIfNecessary ()
Undantag
Egenskapen Cancelled är true.
Egenskapen Error har angetts av den asynkrona åtgärden. Egenskapen InnerException innehåller en referens till Error.
Exempel
Följande kodexempel visar hur du använder RaiseExceptionIfNecessary i härledda klassegenskaper.
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
Anteckningar till arvingar
Om du har härlett din egen klass från AsyncCompletedEventArgs klassen bör dina skrivskyddade egenskaper anropa RaiseExceptionIfNecessary() metoden innan du returnerar egenskapsvärdet. Om komponentens asynkrona arbetskod tilldelar ett undantag till Error egenskapen eller anger Cancelled egenskapen till trueskapar egenskapen ett undantag om en klient försöker läsa dess värde. Detta hindrar klienter från att komma åt egenskaper som potentiellt inte är giltiga på grund av ett fel i den asynkrona åtgärden.