System.StackOverflowException,事件中的問題


System.StackOverflowException錯誤,一般都是出現了死循環。

最近測試別人的winform代碼,出現了過一個問題,開始獲取數據都是正常的,運行一段事件之后,就會提示System.StackOverflowException錯誤。

后來逐個檢查測試,發現是代碼中事件中的遞歸調用問題。

例如:

1、方法C綁定事件A

2、事件A中的參數是B

3、在事件A中對B進行條件判斷,當B滿足一定條件的情況下,執行方法C。

 

這種方式,在方法C執行次數較少的時候,沒有問題,但是如果方法C持續執行,一段時間之后,就會引發System.StackOverflowException錯誤。估計是事件中分配的內存被耗光了。

修改方法是:

1、定義全局布爾類型D

2、在A事件中對B進行判斷,根據B的判斷結果置D的狀態

3、在事件A之外,根據D的判斷,對C進行循環調用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM