0

我正在尝试制作播放列表,其中音乐一个接一个地播放。我需要Dispose() Audio,当它完成时,因为会发生内存泄漏。我写了这段代码:

Audio a = new Audio(@"Music\Title.ogg");
a.Ending += new EventHandler((sender, e) => { (sender as Audio).Dispose(); });
a.Play();

问题是我System.AccessViolationExceptionApplication.Run(new MainForm());: Attempted to read or write protected memory. This is often an indication that other memory is corrupt。它发生在音乐播放完毕后的结束事件处理程序中。那么,我怎样才能一个接一个地播放一些音乐文件并在它完成后处理以前的音频呢?

4

1 回答 1

0

不要Audio在它自己的事件中处理,因为这个类可能希望在调用你的处理程序后做一些簿记工作。

我不知道你的应用程序的逻辑,但这里有一些想法,尝试Open在事件处理程序中调用这个对象。它应该足够聪明,可以处理旧数据并加载新数据。

于 2016-02-03T20:07:17.380 回答