我想知道如何启动一个新的AppDomain并在该AppDomain中运行一个WPF窗口?你知道吗
我的代码是这样的:
import clr
clr.AddReference(r"wpf\PresentationFramework")
from System.Windows import Application, Window
from System.Threading import Thread, ThreadStart, ApartmentState
from System import AppDomain, AppDomainSetup, CrossAppDomainDelegate
class MyWindow(Window):
...
if __name__ == '__main__':
def start_thread():
thread1 = Thread(ThreadStart(MyWindow))
print ("Thread 1 domain:",thread1.GetDomain().FriendlyName)
thread1.SetApartmentState(ApartmentState.STA)
thread1.Start()
thread1.Join()
ads = AppDomainSetup()
ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory
ads.ConfigurationFile = \
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
ad2 = AppDomain.CreateDomain("ad2", None, ads)
cadd = CrossAppDomainDelegate(start_thread)
ad2.DoCallBack(cadd)
结果,我得到了一个错误:
系统运行时序列化.SerializationException:在程序集“\uu CodeGenerator\u assembly,Version=0.0.0,Culture=neutral,PublicKeyToken=null”中键入“\uu System\u CrossAppDomainDelegateDispatcher”未标记为可序列化。
我想挑战是将cadd对象设置为可序列化的。但是当我查找解决方案时,我没有找到任何关于如何在Python中实现它的方法。你知道吗
我对这个领域很陌生,可能一开始就错了。你知道吗
提前感谢您的帮助!你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐