关于Dispose方法的问题,在线等待
windows media player 10 sdk中有个c#使用windows media player com组件的范例。程序功能大致是将一个media player组件放置在一个Form中,可以做一些简单的操作,如播放,停止等。
大致代码如下:
一个成员变量
private AxWMPLib.AxWindowsMediaPlayer Player;
它在这里初始化
public Form1()
{
InitializeComponent();
Player.URL = "mms://nc.sina.com.cn/ent/200401061.wmv ";
}
private void InitializeComponent()
{
...
this.Player = new AxWMPLib.AxWindowsMediaPlayer();
}
如上,我指定Player的URL为一个流媒体文件,以便窗体显示后播放。
这是dispose方法
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
现在的问题是base.Dispose( disposing );这句语句会执行很久,大概7-8秒钟的样子,这造成了窗口关闭时应用程序当了的假象。
有谁知道为什么会这句语句需要这么长时间执行。是不是由于用到了com组件的原因?会不会有内存泄漏?怎么解决这个问题?
------解决方案--------------------up
------解决方案--------------------不清楚
:)
------解决方案--------------------这要去看专门讲垃圾清理的书了