Export (0) Print
Expand All

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 _
)

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

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft