gpt4 book ai didi

c# - 从 .NET 3.5 中的单独线程设置 Form.Owner

转载 作者:行者123 更新时间:2023-11-30 18:42:56 24 4
gpt4 key购买 nike

我正在编写一个测试应用程序,我需要将 Form 放在单独的线程上。

因此,如果我从主线程创建表单窗口并设置其 .Owner = this 一切正常。如果我生成线程 UIThread 并从新线程设置所有者,我会得到异常。获取异常是可以理解的,因为您不能直接访问表单。我的问题是是否有一条消息需要在主线程上捕获并执行 BeginInvoke 以将其推送到它的消息泵上?由于 UIForm ShowInTaskbar 设置为 false,我需要单击任务栏中的主应用程序并恢复其所有子窗口。

private void UIThread() // New Thread call
{
UIForm form = new UIForm();

form.ShowInTaskbar = false;
form.Owner = this;

Application.Run(form); // Expected Exception
}

最佳答案

我不确定,也许每个应用程序只调用一次 Application.Run。看看这个是否适合你

Application.Run(new Form1());
-----------------
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

var thread = new Thread(
() =>
{
var form2 = new Form {Owner = this};
});
thread.Start();
}
}

关于c# - 从 .NET 3.5 中的单独线程设置 Form.Owner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5160969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com