Application.redémarrez - Puzzling comportement dans VB.Net

OK les gars, ce qu'il se passe ici?
Dans ce code VB:

Module Module1
Sub Main()


    If MsgBox("Restart?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
        Application.Restart()

        MsgBox("restarting")

    Else
        MsgBox("Cancel")

    End If

End Sub
End Module

Si ce code est contenu dans un module de l'Application.Le redémarrage n'a pas mis fin à l'application en cours d'exécution jusqu'à la Fin de la Sous est touché. Tout le code qui s'affiche avant puis est exécuté - eg 'Redémarrage' messagebox s'affiche.
Toutefois, si l'équivalent de code est exécuté à l'intérieur d'un formulaire de Demande.Redémarrez met fin à l'application en cours d'exécution immédiatement.
(Les deux cas correctement démarrer une nouvelle instance). Ce comportement ne semble pas être documenté n'importe où - l'implication dans les docs, c'est que c'est synonyme de " Fin " d'aussi loin que la résiliation de l'instance en cours d'exécution. Ai-je raté quelque chose?

OriginalL'auteur peterG | 2012-09-21