gpt4 book ai didi

C# AppDomains 和线程

转载 作者:行者123 更新时间:2023-11-30 13:04:58 24 4
gpt4 key购买 nike

我带着一个让我彻夜难眠的小问题而来。也许这很容易理解,但我还不能。

哪个更好?线程中的 AppDomain,还是新 AppDomain 中的线程?

这就是两者之间的区别:

static void Main() {
AppDomain ad = AppDomain.CreateDomain ("NewDomain");
Thread t = new Thread (delegate() { ad.DoCallBack (SomeMethod); });
t.Start();
}

static void SomeMethod() { }

和:

public void Start() {
myAssembly = Assembly.LoadFrom(dllFileName);
Type myType = AssEnsamblado.GetType(myAseembly.Type);
MethodInfo myMethod = tipo.GetMethod(@"StartDLL");
object obj = Activator.CreateInstance(myType);
Thread thrBase = new Thread(new ThreadStart(delegate() { myMethod.Invoke(obj, null); }));
thrBase.Start();
}

上面的代码片段在一个继承自 MBRO 的类中执行,以创建一个远程实例并调用包含该代码的方法。

最佳答案

我会冒险说,一旦您的代码在新的应用程序域中执行,无论哪种方式都几乎没有或根本没有区别。

问题是与其他应用程序域的交叉,这可能需要对传递/返回到新应用程序域的对象进行序列化/编码(如果它支持的话)。

关于C# AppDomains 和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6684688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com