AppDomain.DoCallBack Method
.NET Framework 2.0
Executes the code in another application domain that is identified by the specified delegate.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Assembly: mscorlib (in mscorlib.dll)
'Declaration Public Sub DoCallBack ( _ callBackDelegate As CrossAppDomainDelegate _ ) 'Usage Dim instance As AppDomain Dim callBackDelegate As CrossAppDomainDelegate instance.DoCallBack(callBackDelegate)
public final void DoCallBack ( CrossAppDomainDelegate callBackDelegate )
public final function DoCallBack ( callBackDelegate : CrossAppDomainDelegate )
Parameters
- callBackDelegate
A delegate that specifies a method to call.
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 currentDomain As AppDomain = AppDomain.CurrentDomain Dim otherDomain As AppDomain = AppDomain.CreateDomain("otherDomain") greetings = "PING!" MyCallBack() otherDomain.DoCallBack(AddressOf MyCallBack) ' Output: ' PING! from default domain ' PONG! from otherDomain End Sub 'Main Sub MyCallBack() Dim name As String = AppDomain.CurrentDomain.FriendlyName Console.WriteLine(greetings + " from " + name) End Sub 'MyCallBack End Module 'PingPong
private static String greetings = "PONG!";
public static void main(String[] args)
{
AppDomain currentDomain = AppDomain.get_CurrentDomain();
AppDomain otherDomain = AppDomain.CreateDomain("otherDomain");
greetings = "PING!";
MyCallBack();
otherDomain.DoCallBack(new CrossAppDomainDelegate(MyCallBack));
// Output:
// PING! from default domain
// PONG! from otherDomain
} //main
public static void MyCallBack()
{
String name = AppDomain.get_CurrentDomain().get_FriendlyName();
Console.WriteLine(greetings + " from " + name);
} //MyCallBack
The following sample demonstrates using the DoCallBack method by value.
<Serializable> _ Public Class PingPong Private greetings As String = "PING!" Public Shared Sub Main() Dim currentDomain As AppDomain = AppDomain.CurrentDomain 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 otherDomain End Sub 'Main Public Sub MyCallBack() Dim name As String = AppDomain.CurrentDomain.FriendlyName Console.WriteLine(greetings + " from " + name) End Sub 'MyCallBack End Class 'PingPong
/** @attribute Serializable()
*/
public class PingPong
{
private String greetings = "PING!";
public static void main(String[] args)
{
AppDomain currentDomain = AppDomain.get_CurrentDomain();
AppDomain otherDomain = AppDomain.CreateDomain("otherDomain");
PingPong pp = new PingPong();
pp.MyCallBack();
pp.greetings = "PONG!";
otherDomain.DoCallBack(new CrossAppDomainDelegate(pp.MyCallBack));
// Output:
// PING! from default domain
// PONG! from otherDomain
} //main
public void MyCallBack()
{
String name = AppDomain.get_CurrentDomain().get_FriendlyName();
Console.WriteLine(greetings + " from " + name);
} //MyCallBack
} //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 currentDomain As AppDomain = AppDomain.CurrentDomain Dim otherDomain As AppDomain = AppDomain.CreateDomain("otherDomain") Dim pp As New PingPong() otherDomain.DoCallBack(AddressOf pp.MyCallBack) pp.MyCallBack() ' Output: ' PING! from default domain ' PONG! from default domain End Sub 'Main Public Sub MyCallBack() Dim name As String = AppDomain.CurrentDomain.FriendlyName Console.WriteLine((greetings + " from " + name)) greetings = "PONG!" End Sub 'MyCallBack End Class 'PingPong
public class PingPong extends MarshalByRefObject
{
private String greetings = "PING!";
public static void main(String[] args)
{
AppDomain currentDomain = AppDomain.get_CurrentDomain();
AppDomain otherDomain = AppDomain.CreateDomain("otherDomain");
PingPong pp = new PingPong();
otherDomain.DoCallBack(new CrossAppDomainDelegate(pp.MyCallBack));
pp.MyCallBack();
// Output:
// PING! from default domain
// PONG! from default domain
} //main
public void MyCallBack()
{
String name = AppDomain.get_CurrentDomain().get_FriendlyName();
Console.WriteLine(greetings + " from " + name);
greetings = "PONG!";
} //MyCallBack
} //PingPong
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.
Community Additions
ADD
Show: