Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

AppDomain.DoCallBack Method (CrossAppDomainDelegate)

 

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

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

Public Sub DoCallBack (
	callBackDelegate As CrossAppDomainDelegate
)

Parameters

callBackDelegate
Type: System.CrossAppDomainDelegate

A delegate that specifies a method to call.

Exception Condition
ArgumentNullException

callBackDelegate is null.

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
Available since 1.1
Return to top
Show:
© 2017 Microsoft