2007年01月07日

AppDomain.DoCallBack メソッド

   このエントリーをはてなブックマークに追加 Clip to Evernote
AppDomain.DoCallBack メソッドを使うと、別のアプリケーションドメイン内のコードを実行させることができる。

public static void Main() {
Console.WriteLine(AppDomain.CurrentDomain.GetHashCode().ToString());

AppDomain domain = AppDomain.CreateDomain("DomainB",
null,
(AppDomainSetup)null);
ObjectHandle oh = domain.CreateInstance("GushwellAssembly", "Gushwell.MyType");

MyType testObj = (MyType)oh.Unwrap();
testObj.Execute(AppDomain.CurrentDomain, new CrossAppDomainDelegate(CallBackMethod));
}

public static void CallBackMethod() {
Console.WriteLine(AppDomain.CurrentDomain.GetHashCode().ToString());
}

----
namespace Gushwell {
public class MyType : MarshalByRefObject {
public void Execute(AppDomain domain, CrossAppDomainDelegate del) {
Console.WriteLine(AppDomain.CurrentDomain.GetHashCode().ToString());
domain.DoCallBack(del);
}
}
}


上記コードでは、DomainB から、デフォルトの AppDomainで動作するコード(CallBackMethod)を呼び出している。


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/50675788