AsyncCompletedEventArgs.RaiseExceptionIfNecessary Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Felhasználó által megadott kivételt hoz létre, ha egy aszinkron művelet meghiúsult.
protected:
void RaiseExceptionIfNecessary();
protected void RaiseExceptionIfNecessary();
member this.RaiseExceptionIfNecessary : unit -> unit
Protected Sub RaiseExceptionIfNecessary ()
Kivételek
A Cancelled tulajdonság true.
A Error tulajdonságot az aszinkron művelet állította be. A InnerException tulajdonság a következőre hivatkozik Error: .
Példák
Az alábbi példakód a származtatott osztálytulajdonságok használatát RaiseExceptionIfNecessary mutatja be.
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
Megjegyzések az öröklőkhöz
Ha saját osztályt származtatott az AsyncCompletedEventArgs osztályból, a csak olvasható tulajdonságoknak a tulajdonságérték visszaadása előtt meg kell hívniuk a RaiseExceptionIfNecessary() metódust. Ha az összetevő aszinkron feldolgozókódja kivételt rendel a Error tulajdonsághoz, vagy beállítja a Cancelled tulajdonságot true, akkor a tulajdonság kivételt fog eredményezni, ha egy ügyfél megpróbálja beolvasni az értékét. Ez megakadályozza, hogy az ügyfelek hozzáférjenek az aszinkron művelet hibája miatt esetleg érvénytelen tulajdonságokhoz.