2016-10-03 6 views
0

このコードで何が問題になっていますか?asp.net vb.netは、何が間違っているかを説明できますか?

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim i As Integer = 0 
    Do 
     Response.Write("hello") 
    Loop While i < 5 
End Sub 

私はエラー

System.OutOfMemoryException was unhandled 
Insufficient memory to continue the execution of the program. 

を持って、私はそのエラーを持っている理由は、誰も説明できますか?

+3

あなたは決してiをインクリメントしません。だからあなたのループはあまりにも私が最初に考えた永遠 –

+0

@DavidCramになりますが、私はそれが 'OutOfMemoryException'を引き起こしている理由を考え出すのトラブルを抱えています。私はResponse.Writeの出力をバッファリングしているのかと疑問に思っています。 –

+0

@DavidCram thanxそれは私の問題を解決する –

答えて

2

これはあなたのコードの修正バージョンです:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim i As Integer = 0 
    Do 
     Response.Write("hello") 
     i = i + 1 
    Loop While i < 5 
End Sub 
1

だからあなたの質問は「なぜメモリ不足」です。 .NET Frameworkは非常に多くのメモリしかアクセスできないためです。基本的に、あなたのループには、「コンピュータがクラッシュするか、イエスが戻ってくるまで、記憶を燃え続ける」と書かれています。ハルマゲドンが発生していないとフレームワークは、コンピュータをクラッシュに対する保護を持っているので、自分の意図した結果が失敗し、あなたは永遠にループを回避するために、何の解除条項または増分を持っていないあなたのループを用いてメモリを介し焼くときには、代わりに、メモリ不足エラーがスローされます(またはフレームワークがコンピュータのクラッシュを止めるまで)。 ;-)

+0

うわー、おかげで素晴らしいの説明を誤り:) –

関連する問題