表单继续加载
本文关键字:加载 继续 表单 | 更新日期: 2023-09-27 18:19:10
当收到TCP
连接的命令时,我试图打开一个新表单。当这种情况发生时,表单不会加载。当我在按钮单击事件上使用完全相同的代码打开表单时,表单成功加载。
TCP
监听器在不同的线程中监听。
我没有得到任何错误或异常
把你想要执行的业务逻辑放在一个单独的方法中(例如:openform())。尝试执行上下文切换回UI线程,然后再调用callOpenForm()。
似乎你想从非ui线程创建一个表单,如
new Thread(() => { new Form() { Text = "In non-ui thread" }.Show(); }).Start();
这行不通。但是可以用一个小技巧
var t = new Thread(() => { Application.Run(new Form() { Text = "In non-ui thread" }); });
t.ApartmentState = ApartmentState.STA;
t.Start();
实际上,你可能试图打开新的窗体线程比UI线程。在这种情况下,你可以尝试MethodInvoker &;代表:
this.Invoke((MethodInvoker)delegate () { new Form() {
//Your code here
}).Show(); });