写了一个下载网页的程序,经常会提示出错
出错提示:在复制内存时检测到可能的 I/O 争用条件。默认情况下,I/O 包不是线程安全的。在多线程应用程序中,必须以线程安全方式(如 TextReader 或 TextWriter 的 Synchronized 方法返回的线程安全包装)访问流。这也适用于 StreamWriter 和 StreamReader 这样的类。
出错段
try
{
int haveRead=0;
byte[] buffer = new byte[1024];
bufIn = new BufferedStream(strm);
int bytes = bufIn.Read(buffer, 0, buffer.Length);//位数
outStream = File.Create(savePath+file_name+".htm");
bufOut = new BufferedStream(outStream);
while (bytes > 0)
{
if(PublicValue.sLixiang_Stop==false )
{
bufOut.Write(buffer, 0, bytes);
bytes = bufIn.Read(buffer, 0, buffer.Length);
haveRead =bytes+haveRead;
PublicValue.sLixiang_Speed =haveRead.ToString ()+"/"+buffer.Length.ToSt
ring ();
}
else
{
bytes=-1;
}
}
bufOut.Flush();
bufOut.Close();
outStream.Close();
bufIn.Close();
strm.Close();
}
catch(Exception err2)
{
出错
}
出错提示:在复制内存时检测到可能的 I/O 争用条件。默认情况下,I/O 包不是线程安全的。在多线程应用程序中,必须以线程安全方式(如 TextReader 或 TextWriter 的 Synchronized 方法返回的线程安全包装)访问流。这也适用于 StreamWriter 和 StreamReader 这样的类。
出错段
try
{
int haveRead=0;
byte[] buffer = new byte[1024];
bufIn = new BufferedStream(strm);
int bytes = bufIn.Read(buffer, 0, buffer.Length);//位数
outStream = File.Create(savePath+file_name+".htm");
bufOut = new BufferedStream(outStream);
while (bytes > 0)
{
if(PublicValue.sLixiang_Stop==false )
{
bufOut.Write(buffer, 0, bytes);
bytes = bufIn.Read(buffer, 0, buffer.Length);
haveRead =bytes+haveRead;
PublicValue.sLixiang_Speed =haveRead.ToString ()+"/"+buffer.Length.ToSt
ring ();
}
else
{
bytes=-1;
}
}
bufOut.Flush();
bufOut.Close();
outStream.Close();
bufIn.Close();
strm.Close();
}
catch(Exception err2)
{
出错
}
解决方案 »
- c# 类相等的问题
- 求使用c#进行软件开发过程中遇到问题的答案
- unix 下运行什么命令会出现像window里面那个数据源配置窗口 在unix 的在/usr/bin下
- guid 类型 怎么存取在access中的ole中?
- 求一正则表达式: 不允许连续输入三个相同的字母
- ListBox 设置多选的问题
- 如何打印DataGrid
- 关于GDI+画线速度的问题,请这方面的高手指点一下
- 求一正则表达式.输入的值必须是在xx-yy之间的数值,xx和yy都是动态的,位数也不固定
- 请教大家,在用sql server参数传递时,转换 char 值 '41050005015291' 时溢出了整数列
- ListView 使用大图标运行时为什么没出现图像?
- 谁帮我看看.
Application.Lock();
///这里处理Application.UnLock();