IronPython中的C#形式';s线。它运行在哪个线程上?
我正在创建一个IronPython应用程序,它使用Windows窗体作为用户界面。表单是在Dll中构建的,我创建了一个单独的线程来使用应用程序类的静态方法运行该表单。这样,当python脚本执行计算和更新表单控件时,表单保持对用户的响应IronPython中的C#形式';s线。它运行在哪个线程上?,c#,multithreading,winforms,ironpython,C#,Multithreading,Winforms,Ironpython,我正在创建一个IronPython应用程序,它使用Windows窗体作为用户界面。表单是在Dll中构建的,我创建了一个单独的线程来使用应用程序类的静态方法运行该表单。这样,当python脚本执行计算和更新表单控件时,表单保持对用户的响应 clr.AddReference('MyDialogs'); from MyDialogs import UserRuntimeDialog; from System.Windows.Forms import Application; from System.T
clr.AddReference('MyDialogs');
from MyDialogs import UserRuntimeDialog;
from System.Windows.Forms import Application;
from System.Threading import *;
def threadjob():
global form;
Application.Run(form);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(False)
form = UserRuntimeDialog();
t = Thread(ThreadStart(threadjob));
t.ApartmentState = ApartmentState.STA;
t.IsBackground = True;
t.Start();
根据.Net文档,只有创建控件的线程才能访问和/或修改其内容。这一事实允许我从IronPython更改表单的属性,例如设置进度条值等等,因为这是创建表单的线程。但是,如果我在表单中读取托管线程id(例如,通过在表单中显示它),我得到的值与主Python的线程不同。
因此,我的问题是: