Freigeben über


AsyncResult.AsyncDelegate-Eigenschaft

Ruft das Delegatobjekt ab, für das der asynchrone Aufruf ausgelöst wurde.

Namespace: System.Runtime.Remoting.Messaging
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Overridable ReadOnly Property AsyncDelegate As Object
'Usage
Dim instance As AsyncResult
Dim value As Object

value = instance.AsyncDelegate
public virtual Object AsyncDelegate { get; }
public:
virtual property Object^ AsyncDelegate {
    Object^ get ();
}
/** @property */
public Object get_AsyncDelegate ()
public function get AsyncDelegate () : Object

Eigenschaftenwert

Das Delegatobjekt, für das der asynchrone Aufruf ausgelöst wurde.

Hinweise

Die AsyncDelegate-Eigenschaft kann in die tatsächliche Klasse des benutzerdefinierten Delegaten umgewandelt werden.

Wenn z. B. der benutzerdefinierte Delegat vom Typ MyDelegate ist und auf MyDelegate.EndInvoke zugegriffen werden soll, muss der asynchrone Delegat in MyDelegate umgewandelt werden. MyDelegate.EndInvoke kann in der asynchronen Rückruffunktion (vom Typ AsyncCallback) aufgerufen werden, um die Ergebnisse des ursprünglich gesendeten MyDelegate.BeginInvoke abzurufen.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie das Delegatobjekt abgerufen wird, für das der asynchrone Aufruf aus AsyncResult ausgelöst wurde. Den vollständigen Beispielcode finden Sie im Beispiel zur AsyncResult-Klasse.

' Asynchronous Callback method.
Public Shared Sub MyCallback(ar As IAsyncResult)
   ' Obtains the last parameter of the delegate call.
   Dim value As Integer = Convert.ToInt32(ar.AsyncState)
   
   ' Obtains return value from the delegate call using EndInvoke.
   Dim aResult As AsyncResult = CType(ar, AsyncResult)
   Dim temp As SampSyncSqrDelegate = CType(aResult.AsyncDelegate, SampSyncSqrDelegate)
   Dim result As Integer = temp.EndInvoke(ar)
   
   Console.Write("Simple.SomeMethod (AsyncCallback): Result of ")
   Console.WriteLine("{0} in SampleSynchronized.Square is {1} ", value, result)
End Sub 'MyCallback  
// Asynchronous Callback method.
public static void MyCallback(IAsyncResult ar) {

    // Obtains the last parameter of the delegate call.
    int value = Convert.ToInt32(ar.AsyncState);

    // Obtains return value from the delegate call using EndInvoke.
    AsyncResult aResult = (AsyncResult)ar;
    SampSyncSqrDelegate temp = (SampSyncSqrDelegate)aResult.AsyncDelegate;
    int result = temp.EndInvoke(ar);

    Console.Write("Simple.SomeMethod (AsyncCallback): Result of ");
    Console.WriteLine("{0} in SampleSynchronized.Square is {1} ", value, result);
}
// Asynchronous Callback method.
static void MyCallback( IAsyncResult^ ar )
{
   
   // Obtains the last parameter of the delegate call.
   int value = Convert::ToInt32( ar->AsyncState );
   
   // Obtains return value from the delegate call using EndInvoke.
   AsyncResult^ aResult = dynamic_cast<AsyncResult^>(ar);
   SampSyncSqrDelegate^ temp = static_cast<SampSyncSqrDelegate^>(aResult->AsyncDelegate);
   int result = temp->EndInvoke( ar );
   Console::Write( "Simple::SomeMethod (AsyncCallback): Result of " );
   Console::WriteLine( " {0} in SampleSynchronized::Square is {1} ", value, result );
}
// Asynchronous Callback method.
public static void MyCallback(IAsyncResult ar)
{
    // Obtains the last parameter of the delegate call.
    SampSyncSqrDelegate sampDelg = (SampSyncSqrDelegate)ar.get_AsyncState();
    
    // Obtains return value from the delegate call using EndInvoke.
    AsyncResult aResult = (AsyncResult)ar;
    SampSyncSqrDelegate temp =
        (SampSyncSqrDelegate)(aResult.get_AsyncDelegate());
    int threadId = AppDomain.GetCurrentThreadId();
    int result = temp.EndInvoke(ar);

    Console.Write("Simple.SomeMethod (AsyncCallback): Result of ");
    Console.WriteLine("{0} in SampleSynchronized.Square is {1} ",
        (Int32)value, (Int32)result);
} //MyCallback

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

AsyncResult-Klasse
AsyncResult-Member
System.Runtime.Remoting.Messaging-Namespace

Weitere Ressourcen

Asynchrone Programmierung mithilfe von Delegaten