AppDomain.DoCallBack Method
Executes the code in another application domain that is identified by the specified delegate.
Assembly: mscorlib (in mscorlib.dll)
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 sample 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 sample 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 sample 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 SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.