C# 所有WinForms应用程序窗口是否共享同一线程?
我的WinForms应用程序不会执行C# 所有WinForms应用程序窗口是否共享同一线程?,c#,winforms,thread-safety,ui-thread,showdialog,C#,Winforms,Thread Safety,Ui Thread,Showdialog,我的WinForms应用程序不会执行应用程序。启动时立即运行(表单) 它首先初始化一些变量,访问命令行参数、应用程序配置API、其他外部内容,特别是使用使用实例化(并通过传递以前设置的一些值进行配置)并使用显示的表单(例如登录表单) 然后它执行Application.Run(Form)以显示主窗体,但主窗体也可以依次显示其他窗体(主要是使用ShowDialog)。所有表单都在单独的类库中定义。其中许多(windows)需要访问程序.Main(string[]args)中实例化的对象(是的,我已经
应用程序。启动时立即运行(表单)
它首先初始化一些变量,访问命令行参数、应用程序配置API、其他外部内容,特别是使用使用实例化(并通过传递以前设置的一些值进行配置)并使用显示的表单(例如登录表单)
然后它执行Application.Run(Form)
以显示主窗体,但主窗体也可以依次显示其他窗体(主要是使用ShowDialog
)。所有表单都在单独的类库中定义。其中许多(windows)需要访问程序.Main(string[]args)
中实例化的对象(是的,我已经添加了string[]args
部分,尽管默认情况下使用Visual Studio创建的WinForms应用程序没有该部分)并将对象相互传递
这让我担心线程安全,但我对“UI线程”概念的基本想法表明我的担心可能是错误的
那么,由同一WinForms应用程序进程实例化和显示的所有窗口(Form
实例)是否共享同一UI线程(当然,除非我将实例化/显示它们的代码放在异步运行的任务
或类似任务中)?或者我真的应该使用一些特殊的技术(特别建议)在它们之间安全地传递数据吗 回答你的问题有点困难,因为总有“但我在这里和那里创造一些线索…”潜伏着你没有告诉我们
然而,除非如此,否则是的。Winforms应用程序将使用1个线程作为其用户界面和所有周围代码
请注意,如果您开始胡闹以下内容:
- 任务。运行
- 螺纹类
- 幕后工作者
然后我的答案就不见了。回答你的问题有点困难,因为总有“…但我在这里和那里创建一些线程…”潜伏着你没有告诉我们
然而,除非如此,否则是的。Winforms应用程序将使用1个线程作为其用户界面和所有周围代码
请注意,如果您开始胡闹以下内容:
- 任务。运行
- 螺纹类
- 幕后工作者
然后我的答案就消失了