客户端是反射加载各个模块,
例如其中一个模块有60左右个控件, 第一次加载初始化这些控件需要500多毫秒,
如果不关闭客户端只关闭这个模块,再打开这个模块加载只需要50多毫秒。请问是什么原因导致的, 再次打开模块还是需要new这些控件的,为什么时间相差这么多。
例如其中一个模块有60左右个控件, 第一次加载初始化这些控件需要500多毫秒,
如果不关闭客户端只关闭这个模块,再打开这个模块加载只需要50多毫秒。请问是什么原因导致的, 再次打开模块还是需要new这些控件的,为什么时间相差这么多。
主要是俩次打开都走相同的代码, 但是时间差别很大, 感觉很奇怪。
难道是第一次打开这个控件放缓存了? 但是我第二次打开又从新new了一遍啊。
这个方法有点效果, 但是这个方法太笨了。
或加个定时器来做初始化的事。 Private Sub Setipform_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'窗体放在屏幕中央
Dim theScreen As Rectangle
theScreen = Screen.PrimaryScreen.Bounds()
Me.Location = New Point((theScreen.Width - Me.Width) / 2, _
(theScreen.Height - Me.Height) / 2)
'初始化
BeginInvoke(New EventHandler(AddressOf ip_Init))
End Sub '让窗体显示快些出来,异步与定时器相同,优先异步方式
Private Sub ip_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) ' Handles Timer1.Tick
System.Windows.Forms.Application.DoEvents() '释放控制权
FillNetworkAdapters(Id, Name, Caption) '获得网卡 ID,名称,标题
Dim i As Integer
For i = 0 To (Name.Length - 1)
Name_Combo.Items.Add(Name(i)) '将本机上的所有网卡填充到Combox
Next
i = Name_Combo.SelectedIndex
If i < 0 Then Exit Sub
wk.Text = Caption(0)
NetId = Id(0) '设置依据-全局变量
End Sub