Мне интересно, как запустить новый домен приложений и запустить окно 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)
В результате я получил ошибку:
System.Runtime.Serialization.
Полагаю, задача состоит в том, чтобы установить объект cadd как сериализуемый.Но когда я искал решения, я не нашел ничего о том, как это сделать в Python.
Я совершенно новичок в этой области, возможно, я ошибаюсь в самом начале.
Спасибо за вашу помощь заранее!