构造函数和垃圾回收 高分重谢

taofirst 2003-11-06 09:23:46
Sub ChildFrm(ByVal n As Integer, ByVal str_name As String)
Dim frm() As Form = Me.MdiChildren
Dim f() As Form = {New Form2, New Form3, New Form4}

If frm.Length = 0 Then '子窗体为空
Dim objfrm = f(n)
objfrm.MdiParent = Me
objfrm.Show()
Exit Sub
End If

Dim Fm As Form
Dim B As Boolean = False

For Each Fm In frm
If Fm.Name = str_name Then
Fm.Activate()
Exit Sub
Else
B = True
End If
Next

If B = True Then
Dim objfrm = f(n)
objfrm.MdiParent = Me
objfrm.Show()
End If
End Sub

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
ChildFrm(0, "Form2")
End Sub

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
ChildFrm(1, "Form3")
End Sub

Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click
ChildFrm(2, "Form4")
End Sub
End Class

我的意思是子窗体只能存在一个,但 Dim f() As Form = {New Form2, New Form3, New Form4}是不是实例化所有的窗体,然后加载在内存中,如果子窗体很多的话是不是很影响速度,并且实例化后的对象是不是一直保存在内存中,.net的垃圾回收机制是怎样的?
改好代码者必有重谢
...全文
77 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
taofirst 2003-11-08
  • 打赏
  • 举报
回复
我实在是想让我的100分花的有点价值
poni 2003-11-08
  • 打赏
  • 举报
回复
Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
If Me.DetectChildForm("Form2", Me) Is Nothing Then '调用上面的函数
Dim frm As New Form2()
frm.MdiParent = Me
frm.Show()
End If
End Sub
记得给分哟!
poni 2003-11-08
  • 打赏
  • 举报
回复
Public Function DetectChildForm(ByVal tString As String, ByVal tMDIForm As Form) As System.Windows.Forms.Form
Dim iCounter As Integer
Dim MyForm As New Form()
MyForm = tMDIForm

If MyForm.MdiChildren.Length = 0 Then '如果子窗口数量为0
DetectChildForm = Nothing
Exit Function
End If

For iCounter = 0 To MyForm.MdiChildren.Length - 1
If MyForm.MdiChildren(iCounter).GetType.ToString = Application.ProductName & "." & tString Then
MyForm.MdiChildren(iCounter).Activate()
Return (MyForm.MdiChildren(iCounter))
End If
Next
End Function
NoReady 2003-11-06
  • 打赏
  • 举报
回复
实例化后的对象只要没有去显式的dispose它的话,它实际上还在内存中的,如果类提供了finalize(析构)方法的话,那么GC会去掉它的强引用,但并没有把它从内存中去除,就是说它还一直保存在内存中,一般的说,要GC最起码 2 次COLLECT后,才有可能从内存中移除的。而GC会产生COLLECT动作只有在少数情况下才会发生:如物理内存不足或应用程序退出等。
taofirst 2003-11-06
  • 打赏
  • 举报
回复
我现在用的就是这种方法,可是我想试试其它的,改改我的代码,不过放心,分是有的
dimtxw 2003-11-06
  • 打赏
  • 举报
回复
dim frm2,frm3,frm4 as Form

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
If frm2 Is Nothing Then
frm2=New Form2()
End If
frm2.Show()
frm2.Activate()
End Sub

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
If frm3 Is Nothing Then
frm3=New Form2()
End If
frm3.Show()
frm3.Activate()
End Sub

Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click
If frm4 Is Nothing Then
frm4=New Form2()
End If
frm4.Show()
frm4.Activate()
End Sub
End Class
内容概要:本文提出并实现了一种基于Transform-KAN混合架构的电力负荷预测模型,旨在通过融合Transformer在长序列建模中的注意力机制优势与Kolmogorov-Arnold Network(KAN)在函数逼近方面的高精度非线性拟合能力,显著提升负荷预测的准确性与鲁棒性。研究系统阐述了模型的整体结构设计、输入特征工程、训练流程及关键超参数配置,并利用真实电力系统历史数据进行多步预测实验,验证了该方法在处理非线性、非平稳负荷序列时的优越性能。重点探讨了新型神经网络结构在时间序列预测任务中的创新应用,为复杂电力系统负荷的精准预估提供了有效的技术路径。; 适合人群:具备一定编程基础和机器学习知识,从事电力系统、能源管理或时间序列预测相关研究的研发人员,尤其适合工作1-3年希望深入理解前沿预测模型的技术人员。; 使用场景及目标:①应用于电网调度、能源管理系统中对未来电力负荷的精确预测;②探索Transformer与KAN等新兴神经网络模型在实际工业场景中的融合设计与实现方法;③为学术研究提供可复现的高性能负荷预测基准方案。; 阅读建议:此资源以Python代码实现为核心,强调理论与实践相结合,建议读者在学习过程中仔细研读模型架构细节,动手运行并调试代码,结合实验结果深入理解各模块的作用与优化策略,从而全面掌握该先进预测方法的设计精髓。

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧