本人写个小的winform程序,定时循环用AxWebBrowser获取网页信息到剪贴板后对所获取的信息做处理(网页的信息是动态更新的,所以用循环确保获取信息跟网页同步)。现在出现的问题是内存一直在涨,每次获取网页信息内存都涨1MB左右,释放的又少,总体上内存一直在涨,过几个小时内存就爆满了。请教各位大侠,如何才能及时释放所占资源呢?注:GC回收没效果...
部分代码如下:
this.axWebBrowser1.Navigate2(ref _joURL, ref g_Disp, ref g_Disp, ref g_Disp, ref g_Disp);axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_SELECTALL, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref objectNull, ref objectNull);
axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_COPY, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref objectNull, ref objectNull); IDataObject data = Clipboard.GetDataObject();
// 将数据与指定的格式进行匹配,返回bool
if (data.GetDataPresent(DataFormats.Text))
{
// GetData检索数据并指定一个格式
_webContent = (string)data.GetData(DataFormats.Text);
}
else
{
MessageBox.Show("目前剪贴板中数据不可转换为文本", "错误");
}注:_webContent这是一个全局字符串变量AxWebBrowser及时释放资源
部分代码如下:
this.axWebBrowser1.Navigate2(ref _joURL, ref g_Disp, ref g_Disp, ref g_Disp, ref g_Disp);axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_SELECTALL, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref objectNull, ref objectNull);
axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_COPY, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref objectNull, ref objectNull); IDataObject data = Clipboard.GetDataObject();
// 将数据与指定的格式进行匹配,返回bool
if (data.GetDataPresent(DataFormats.Text))
{
// GetData检索数据并指定一个格式
_webContent = (string)data.GetData(DataFormats.Text);
}
else
{
MessageBox.Show("目前剪贴板中数据不可转换为文本", "错误");
}注:_webContent这是一个全局字符串变量AxWebBrowser及时释放资源
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货