最近一个月来被一个爆栈bug困扰了许久。。。
前言
起初,有用户在评论里反馈说我的歌词编辑器有播放完后闪退的现象
由于没说是任何歌曲都会闪退,所以我只是让他提供下样本
后来越来越多的的人向我反馈这个bug,并且还说任何歌曲都这样
所以本打算停止更新的我又开始维护了。。。。
进展
声明:我这边是没有复现的
首先,我第一个想到的就是播放器模块,就优化了下。。。
结果还是有人反馈,就又优化了下。。。
后来还是有人反馈,我实在不知道该改哪了,然后就想亡羊补牢
于是搞了个异常退出后自动恢复的功能
过了一个星期后。。。
尽管我是十分不情愿的,但我还是装了虚拟机,上了个win10 1511版本。。。
测试了下。。还真复现了。。
但是剩余内存不够开vs,没法远程调试。。。
然后就又装了个Mobile模拟器
调试了下。。在播放器模块下抛出一个异常 System.StackOverflowException
居然是栈炸了。。。。。
然后我又各种优(zhe)化(ten)。。。
然而始终没能解决,只能求助人了
最后被林德熙大神指出是进度条有问题
然后我就开始各种解耦了。。。。。
解决方案
我先是把媒体控件的position绑定给去了,在后台实现更改
然后发现还不行。。。
突然想到还有一个地方没改那就是进度条的value绑定部分
改成单向绑定后终于奇迹般的解决了。。。。
结论:做进度同步时切忌双向绑定
END