AsyncCompletedEventArgs.RaiseExceptionIfNecessary 方法      
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
如果异步操作失败,则引发用户提供的异常。
protected:
 void RaiseExceptionIfNecessary();protected void RaiseExceptionIfNecessary ();member this.RaiseExceptionIfNecessary : unit -> unitProtected Sub RaiseExceptionIfNecessary ()例外
              Cancelled 属性为 true。
该 Error 属性已由异步操作设置。 InnerException 属性持有对 Error 的引用。
示例
下面的代码示例演示如何 RaiseExceptionIfNecessary 在派生类属性中使用 。
public class CalculatePrimeCompletedEventArgs :
    AsyncCompletedEventArgs
{
    private int numberToTestValue = 0;
    private int firstDivisorValue = 1;
    private bool isPrimeValue;
    public CalculatePrimeCompletedEventArgs(
        int numberToTest,
        int firstDivisor,
        bool isPrime,
        Exception e,
        bool canceled,
        object state) : base(e, canceled, state)
    {
        this.numberToTestValue = numberToTest;
        this.firstDivisorValue = firstDivisor;
        this.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
继承者说明
如果已从 AsyncCompletedEventArgs 类派生自己的类,则只读属性应在返回属性值之前调用 RaiseExceptionIfNecessary() 方法。 如果组件的异步工作器代码将 Error 异常分配给 属性或将 Cancelled 属性设置为 true,则当客户端尝试读取其值时,该属性将引发异常。 这可以防止客户端访问由于异步操作失败而可能无效的属性。