gpt4 book ai didi

c# - 从后台线程创建 Windows 窗体

转载 作者:行者123 更新时间:2023-11-30 19:47:48 25 4
gpt4 key购买 nike

我正在开发一个 VS 包,但我遇到了这个问题:

我有一个后台线程,每隔几秒检查一次必须完成的特定更改。这包括更改 VS 2010 的 GUI,出于某种原因,它无需调用就可以很好地工作。

无论如何,如果我尝试打开一个新表单,它会打开,但它没有显示任何内容,有点崩溃并且没有响应。
我已经尝试过 Application.OpenForms[0].invoke(/* delegate to create the form */)
这很好用,但我没有一直打开表单
我还尝试创建一个 System.Windows.Forms.Timer,但它一开始就没有启动

问题:如何获得正确的 GUI 线程来调用我的表单?
或者更确切地说:如何从我的后台线程创建一个新表单?

最佳答案

在主应用程序启动时将 SynchronizationContext.Current 实例存储在某处。一旦设置。您可以尝试在任何其他线程中执行以下代码。

 GuiContext.Send(_ => {
Form2 frm2=new Form2();
frm2.ShowDialog();
}, null);

其中 GuiContext 是 SynContext 的存储实例。

关于c# - 从后台线程创建 Windows 窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6109159/

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