把那代码写在这里面试试:
this.Invoke((MethodInvoker)delegate{ this.Memo.Text+= value +"\n"; });
代码贴出来看看。(卡死有没有抛出异常啊)
另外我觉得你这样创建的form无法在主线程访问,因为form的支线程已经被释放,并且你的form也没有对应句柄,所以你无法调用form.invoke()。。。但倘若你像楼上说的在this.invoke()中创建form的话就达不到异步的效果,还不如直接在主线程创建来的高效。。。所以的建议是:
1、如果你的form构造函数确实耗时,那么应该考虑为你的构造函数中耗时的函数进行异步,而不是异步创建form。
2、倘若你一定要异步创建form,那么你在支线程中这样去写
// 支线程中 Form frm1=new Form(); Application.Run(frm1); frm.Hide(); // 主线程中调用 dic[xx].Invoke(()=>{dic[xx].Show()});
为什么在子线程里创建窗体?需求很怪啊
Dict[xx].ShowDialog()