我试着制作播放列表,在那里音乐一个接一个地播放。当它完成时,我需要Dispose() Audio,因为内存泄漏会发生。我写了这段代码:
Audio a = new Audio(@"Music\Title.ogg");
a.Ending += new EventHandler((sender, e) => { (sender as Audio).Dispose(); });
a.Play();问题是我的System.AccessViolationException在Application.Run(new MainForm());:Attempted to read or write protected memory. This is often an indication that other memory is corrupt中。它发生在结束事件处理程序后,音乐播放完。那么,我如何能够一个一个地播放一些音乐文件,并在它完成后处理以前的音频?
发布于 2016-02-03 20:07:17
不要在它自己的事件中释放Audio,因为这个类在调用处理程序之后可能想做一些簿记工作。
我不知道您的应用程序的逻辑,但是这里有一些想法,尝试在事件处理程序中调用这个对象的Open。它应该足够聪明,能够处理旧数据并加载新数据。
https://stackoverflow.com/questions/35185013
复制相似问题