AppDomain.DoCallBack Method
Executes the code in another application domain that is identified by the specified delegate.
Assembly: mscorlib (in mscorlib.dll)
'Declaration Public Sub DoCallBack ( _ callBackDelegate As CrossAppDomainDelegate _ ) 'Usage Dim instance As AppDomain Dim callBackDelegate As CrossAppDomainDelegate instance.DoCallBack(callBackDelegate)
Parameters
- callBackDelegate
- Type: System.CrossAppDomainDelegate
A delegate that specifies a method to call.
Implements
_AppDomain.DoCallBack(CrossAppDomainDelegate)| Exception | Condition |
|---|---|
| ArgumentNullException | callBackDelegate is Nothing. |
callBackDelegate can specify a marshal-by-value, MarshalByRefObject, or ContextBoundObject.
The following example demonstrates using a static DoCallBack method.
Public Module PingPong Private greetings As String = "PONG!" Sub Main() Dim otherDomain As AppDomain = AppDomain.CreateDomain("otherDomain") greetings = "PING!" MyCallBack() otherDomain.DoCallBack(AddressOf MyCallBack) ' Output: ' PING! from defaultDomain ' PONG! from otherDomain End Sub 'Main Sub MyCallBack() Dim name As String = AppDomain.CurrentDomain.FriendlyName If name = AppDomain.CurrentDomain.SetupInformation.ApplicationName Then name = "defaultDomain" End If Console.WriteLine(greetings + " from " + name) End Sub 'MyCallBack End Module 'PingPong
The following example demonstrates using the DoCallBack method by value.
<Serializable> _ Public Class PingPong Private greetings As String = "PING!" Public Shared Sub Main() Dim otherDomain As AppDomain = AppDomain.CreateDomain("otherDomain") Dim pp As New PingPong() pp.MyCallBack() pp.greetings = "PONG!" otherDomain.DoCallBack(AddressOf pp.MyCallBack) ' Output: ' PING! from defaultDomain ' PONG! from otherDomain End Sub 'Main Public Sub MyCallBack() Dim name As String = AppDomain.CurrentDomain.FriendlyName If name = AppDomain.CurrentDomain.SetupInformation.ApplicationName Then name = "defaultDomain" End If Console.WriteLine(greetings + " from " + name) End Sub 'MyCallBack End Class 'PingPong
The following example demonstrates using the DoCallBack method by reference.
Public Class PingPong Inherits MarshalByRefObject Private greetings As String = "PING!" Public Shared Sub Main() Dim otherDomain As AppDomain = AppDomain.CreateDomain("otherDomain") Dim pp As New PingPong() pp.MyCallBack() pp.greetings = "PONG!" otherDomain.DoCallBack(AddressOf pp.MyCallBack) ' Output: ' PING! from default domain ' PONG! from default domain End Sub 'Main ' Callback will always execute within defaultDomain due to inheritance from ' MarshalByRefObject Public Sub MyCallBack() Dim name As String = AppDomain.CurrentDomain.FriendlyName If name = AppDomain.CurrentDomain.SetupInformation.ApplicationName Then name = "defaultDomain" End If Console.WriteLine((greetings + " from " + name)) End Sub 'MyCallBack End Class 'PingPong
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.