日期:2014-05-17  浏览次数:20908 次

winform 有办法在事件处理过程中中断事件并处理其他事件吗?
本帖最后由 wlhkane110 于 2014-01-03 10:12:55 编辑
        
private void mp3play()
        {
            string src;
            foreach (string lrc in mp3lrc)
            {
                Mp3 mp3 = new Mp3();
                src = "../../Ebook/" + Bsrc + "/sound/" + lrc + ".mp3";
                mp3.FileName = src;
                mp3.play();
                while (! mp3.IsEnd())
                {
                }
            }
        }

一个播放按钮 mp3lrc是存储用来播放的mp3路径的arraylist 
然后发现在播放过程中窗体处于一个不可控的状态 也就是只能等播放完毕后才能做其他操作
那么想问下有没有办法在事件处理过程中还能进行其他操作 监测到其他操作时中断播放 响应其他事件呢?

------解决方案--------------------
用线程来操作播放事件吧!需要暂停播放就将线程挂起。
------解决方案--------------------
同意楼上的观点,你的播放功能是单线程播放的,在播放过程中,整个窗体也卡了,你的Mp3类也是单线程的。
你可以试试WPF的MediaPlayer类,他会在另外的线程中进行播放,甚至可以同时播放多个。
------解决方案--------------------
Quote: 引用:

如LS的MP3控制类 另起线程的异常代码:
调试,中断看一下mc.iName的值有没有变化。