首页 / 知识
关于c#:可以“剥离”几个GUI线程吗? (不通过Application.Run停止系统)
2023-04-11 17:11:00

Possible to “spin off” several GUI threads? (Not halting the system at Application.Run)我的目标 我想要一个主处理线程(非GUI),并能够根据需要在其自己的后台线程中剥离GUI,并使我的主要非GUI线程保持正常工作。换句话说,我希望我的主要非GUI线程成为GUI线程的所有者,而不是相反。我不确定Windows Forms(?)甚至可能做到这一点 背景
我有一个基于组件的系统,在该系统中,控制器使用单个方法
通过xml配置文件并通过添加包含 整个系统的寿命如下所示
如果组件启动 如果允许这些组件启动它们自己的Windows Forms GUI,那将是很好的。 问题
当组件尝试启动 组件示例。其中一个与GUI无关,而第二个则触发了一个可爱的带有粉红色蓬松兔子的窗户。
我没有运气尝试过。即使当我尝试在其自己的线程中启动GUI时,执行也会暂停,直到该GUI关闭为止。
是否可以剥离GUI并在 Application.Run方法显示一个(或多个)表单并启动标准消息循环,该循环运行直到关闭所有表单为止。您不能通过关闭所有表单或强制关闭应用程序来强制返回该方法。 但是,您可以将ApplicationContext(新Form()的instad)传递给Application.Run方法,并且ApplicationContext可用于一次启动多个表单。仅当所有这些应用程序都关闭时,您的应用程序才会结束。参见此处:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.application.run.aspx 此外,您非模态显示的任何表单都将继续与主表单一起运行,这将使您拥有不止一个相互阻塞的多个窗口。我相信这实际上是您想要实现的目标。 我不确定这是否正确,但是我记得从控制台应用程序运行窗口表单,方法是仅更新表单并在其上调用newForm.Show(),如果您的组件使用的是它而不是Application.Run(),则新表格不应阻止。 当然,组件将负责维护对其创建的表单的引用 我敢肯定,如果您足够努力地攻克它,这是可能的,但是我建议这不是一个好主意。 " Windows"(您在屏幕上看到的)与进程高度相关。也就是说,每个显示任何GUI的进程都应具有一个消息循环,该消息循环将处理与创建和管理窗口有关的所有消息(诸如"单击按钮","关闭应用程序","重画屏幕"之类的消息) ' 等等。 因此,或多或少地假定如果您有任何消息循环,则该消息循环在整个过程的生命周期中必须可用。例如,Windows可能会向您发送"退出"消息,并且即使屏幕上没有任何内容,您也需要有一个消息循环来处理该消息。 最好的选择是这样做:
制作一个永远不会显示的假表格,这是您的"主应用程序" |
最新内容
相关内容
python新手如何系统学习
python新手如何系统学习,基础,系统,状态,环境,中级,培训,阶段,代码,概念,管理,我们可把学习python分为4个阶段,每个阶段需要完善的掌握知识点,ppython创建多线程的两种方法
python创建多线程的两种方法,培训,第一,代码,业务,方法,线程,函数,任务,演示,实例,当我们使用python编程的过程中需要多个输出的任务的话,为了pythonos怎样处理系统文件
pythonos怎样处理系统文件,系统,培训,环境,代码,文件,环境变量,模块,操作系统,类型,代表,pythonos怎样处理系统文件1、获取系统类型对代码进python创建新线程有哪些方法
python创建新线程有哪些方法,培训,方法,线程,对象,测试,实例,以上,参数,教程,更多,python创建新线程有哪些方法1、方法(1)直接创建threading.关于搜索:grep一个文件,但显示几个周
关于搜索:grep一个文件,但显示几个周围的行?,关于搜索:grep一个文件,但显示几个周围的行?,五行,显示,字符串,这一点,grep a file, but show关于sql Server:将文件存储在数据库
关于sql Server:将文件存储在数据库中而不是文件系统中?,关于sql Server:将文件存储在数据库中而不是文件系统中?,性能,文件系统,文件存关于多线程:C#中是否有”尝试
关于多线程:C#中是否有尝试锁定,超时跳过操作?,关于多线程:C#中是否有尝试锁定,超时跳过操作?,锁定,超时,一个对象,语句,Is there a "try关于多线程:C#静态构造函数线程是否
关于多线程:C#静态构造函数线程是否安全?,关于多线程:C#静态构造函数线程是否安全?,线程,thread,safe,Singleton,Is the C# static constru关于C#:何时在嵌入式系统中使用类型
关于C#:何时在嵌入式系统中使用类型抽象,关于C#:何时在嵌入式系统中使用类型抽象,用于,类型,嵌入式系统,这是,When should I use type关于多线程:C ++中单线程的线程安全
关于多线程:C ++中单线程的线程安全惰性构造,关于多线程:C ++中单线程的线程安全惰性构造,线程安全,方法,线程,对象,Thread safe lazy关于多线程:学习线程编程有哪些好的
关于多线程:学习线程编程有哪些好的资源?,关于多线程:学习线程编程有哪些好的资源?,财富,多线程技术,多核,学习,What are some good reso关于dvcs:不同的分布式版本控制系统
关于dvcs:不同的分布式版本控制系统一起工作,关于dvcs:不同的分布式版本控制系统一起工作,控制,安装程序,办公室,源代码,Different Dis