日期:2014-05-19  浏览次数:20711 次

多线程:线程创建窗体的时候,窗体无法正常显示,如何解决?
用线程运行以下方法:
static   private   void   OpenWaitingForm()
{
WaitingForm   waitingForm   =   new   WaitingForm();
waitingForm.Show();
}

结果发现窗体无法正常显示,只能出一个轮廓,鼠标放上去显示程序忙的漏斗指针,但偶尔又能正常显示;我尝试过将窗体中所有业务代码(非窗体本身构件用的代码)屏蔽,情况依旧.....实在不明白原因

希望大家能帮下忙,说明下出现的原因和原理



------解决方案--------------------
UP
------解决方案--------------------
和多线程有什么关系么??
------解决方案--------------------
不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。
------解决方案--------------------
可以这么用委托实现:

Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As New RunMySub(AddressOf OpenWaitingForm)
a.Invoke()
End Sub

Private Delegate Sub RunMySub()

Private Sub OpenWaitingForm()
Dim frm As New Form
frm.Show()
End Sub
End Class
------解决方案--------------------
请问lz是怎么运行线程的。。
------解决方案--------------------
真不忍心高分帖子沉下来
------解决方案--------------------
委托....