This documentation is archived and is not being maintained.

AppDomain.DoCallBack Method

Executes the code in another application domain that is identified by the specified delegate.

Namespace:  System
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)

ExceptionCondition
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.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
Show: