2011-05-23 24 views
0

我只想结束程序本身。 Application.Exit只是让我重新回到循环中。 编辑,包括代码:: 模块模块1VB.Net应用滞留在循环

Sub Main() 
    Sub1() 
    Sub2() 
End Sub 

Sub1() 
EndSub 

Sub2() 
End Sub 

End Module 

编辑:这似乎又回到了这里分ChooseDomain2循环..我包括子1为好。

Sub ChooseDomain1() 
    Dim DomainName As Object 
    'Get List of all users on Domain using WinNT 
    DomainName = InputBox(messageOK, Title, defaultValue) 
    de.Path = "WinNT://****".Replace("****", DomainName) 
    If DomainName Is "" Then ChooseDomain2() Else StoreUserData1() 
End Sub 


Sub ChooseDomain2() 
    MsgBox("Welcome to the Domain Searcher. Click OK to Auto Search for Domain") 
    Dim MsgBoxResult As Object = ActiveDirectory.Domain.GetCurrentDomain.Name 
    MsgBoxResult = InputBox(messageCan, Title, MsgBoxResult) 
    de.Path = "WinNT://*****".Replace("*****", MsgBoxResult) 
    StoreUserData1() 
End Sub 
+0

你在哪里打电话Application.Exit?上面列出的代码不会循环,它会运行一次然后关闭。 – 2011-05-23 20:01:53

+0

不是我的电脑上......我与Application.Ext尝试过的最后一个子之后,在最后一个子,模块结束之前,等等等等,有或没有它,我得到带回Sub1的,一切都完成后... – sealz 2011-05-23 20:03:40

+0

这是一个什么样的项目?控制台应用? – 2011-05-23 20:06:22

回答

0

Application.Exit不需要作为控制台应用程序它执行完在撒哈拉沙漠主要的最后一行后,将退出。正如前面提到的,很可能你有Sub1调用Sub2(或类似的东西),所以在每个子的开始处设置一个断点,以找出哪个不断被调用。然后,您可以在您的代码中进行搜索以查找该子目录的来源。

1

当它击中前端模块,它只是开始从广场一回。

模块根本不执行 - 所以它从来没有“命中结束模块”,从不从“开始”。模块只是将可以执行的方法分组,并且Main是一种特殊的方法,可用作应用程序的开始。

这就是说,你的代码是保证(!)不要重复执行。此外,还有在你的代码中没有任何地方Application.Exit所以很难看到你实际上执行什么。不管你展示的代码如何。

需要注意的是VB可能执行的代码,你没有写(代码可以自动生成由编译器,特别是应用框架),但这似乎并没有在你的情况要发生,不应该无论如何循环。但是,从你提供的信息来看,这是不可能的。

+0

所以我甚至不需要application.exit?上面的代码应该结束?换句话说,你第二次smoore的评论? – sealz 2011-05-23 20:09:27

+0

@ harper89几乎从不。 'Application.Exit'是一个病态的急停。这有点像从你的应用程序内部崩溃(当然,并不是那么激烈,但你通常会通过更多的控制手段来终止一个程序,也就是离开主要方法)。 – 2011-05-23 20:14:30