c# - 有没有办法让一个 .NET 控件包含另一个由单独的 GUI 线程拥有的控件?

标签 c# .net multithreading user-interface

我正在考虑创建一个选项卡式界面,该界面在选项卡式或 MDI 界面中具有用户控件(可能由插件开发人员编写)。这些插件控件可能会无意中卡住它们的 GUI 线程,我希望它们不会影响其他选项卡中的用户控件。很像谷歌浏览器为每个选项卡创建一个进程;但在这种情况下,只有线程。

或者甚至是 MDI 接口(interface),其中子 MDI 表单由单独的线程拥有?

我发现虽然我可以同时运行多个 GUI 线程,但必须在表单级别将它们分开。任何解决方法/想法?

对于那些说不需要这个的人,我认为这是胡说八道。出于安全和 UI 原因,Google 的 Chrome 浏览器在单独的进程中运行选项卡。我只是想复制这种行为。当编写用户控件的人是糟糕的插件开发人员时,这一点很重要。

最佳答案

不,不可能按照您描述的方式执行此操作。一个拥有/附属于另一个 GUI 线程的控件不能直接包含在一个控件中,该控件拥有/附属于一个不同的线程,其绘制功能在另一个线程上运行。

关于c# - 有没有办法让一个 .NET 控件包含另一个由单独的 GUI 线程拥有的控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1670849/

相关文章:

c# - 如何打开任何窗口的上下文菜单?

javascript - 当我创建新员工时,下拉列表不会加载数据,但是当刷新页面时,它会加载新数据

.net - 如何将 Azure 应用服务的访问权限限制为仅在 Azure Ad 的用户和组设置中添加的用户?

Android - 暂停所有线程花费了 : * ms

java - 如何为Java中对象的不同成员拥有不同的同步块(synchronized block)

c# - System.WIndows.Application 静态成员是线程安全的吗?

c# - WCF web 服务运行在两台服务器集群上,带有负载均衡器,解析 web 服务地址

c# - 在 C# 中返回一个随机类型的对象

c# - LINQ to Entities 无法识别方法 'Int32

.net - WCF 测试客户端和代理设置