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