会VB都进来讨论一下这个有点XX的问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 19:39:37
我在用Vb编程中被这么一个问题卡住了:
有这几个过程sub a,sub b,sub c 。我原来计划让sub a运行,在sub a 中判断如果满足一定条件,就执行sub b,在sub b 中判断如果满足一定条件,则执行 sub c,在sub c 中判断如果满足一定条件,就再执行sub a,再在sub a 中判断如果满足一定条件就执行sub b...就是这样循环互相调用,也许朋友们立刻想到Call吧。一开始我也是这样调用的,但在应用中我才发现,当互相调用多了的时候,程序会在过程中所声明的变量不能及时地释放掉,而很占内存,甚至电脑挂掉。。。个位有什么好的办法是程序既可以过程中互相调用,有可以及时释放资源的方法啊?
Gerald_Bond 我那时就时用你的方法,但调用多了之后就很占内存。

Private Declare Function SetProcessWorkingSetSize Lib "kernel32" (ByVal hProcess As Long, ByVal dwMinimumWorkingSetSize As Long, ByVal dwMaximumWorkingSetSize As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Sub Form_Unload(Cancel As Integer)
SetProcessWorkingSetSize GetCurrentProcess(), -1&, -1&
End Sub
加上那代码,用于释放内存

另外新建一个Sub用来判断条件并选择执行Sub a, Sub b, Sub c,这样就不会产生递归,就不会占大量内存。
Sub d
Do
If 条件1 Then
a
ElseIf 条件2 Then
b
ElseIf 条件3 Then
c
End If
Loop
End Sub
大概就是这个意思~