在一个backGroundWork中,使用WebClient第一次下载是正常的,第二次下载就超时,关闭程序再下载又可以了,然后再超时。就是每次运行程序只能下载一个文件。代码是这样的private Stream m_webFileStream;private void bakDownFile_DoWork(object sender, DoWorkEventArgs e)
{
try
{
String url = (String)e.Argument; WebClient web = new WebClient();
m_webFileStream = web.OpenRead(url);
} catch (WebException)
{
MessageBox.Show("Test");
m_isSuccessDownFilr = false;
} finally
{
GC.Collect(); if (m_webFileStream != null
&& m_downFile != null)
{
m_webFileStream.Close();
m_webFileStream = null;
}
}
}就是第二次执行m_webFileStream = web.OpenRead(url);一定会抛出异常
强制垃圾收集,强制web.Dispoad()也不行
{
try
{
String url = (String)e.Argument; WebClient web = new WebClient();
m_webFileStream = web.OpenRead(url);
} catch (WebException)
{
MessageBox.Show("Test");
m_isSuccessDownFilr = false;
} finally
{
GC.Collect(); if (m_webFileStream != null
&& m_downFile != null)
{
m_webFileStream.Close();
m_webFileStream = null;
}
}
}就是第二次执行m_webFileStream = web.OpenRead(url);一定会抛出异常
强制垃圾收集,强制web.Dispoad()也不行
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货