程序未完成循环就结束是什么问题?

vortexroc 2012-03-30 03:39:58
我在button里面写了一段代码,读取一个二进制文件然后写入一个文本文件,如下:
for (int i = 0; i < tmp.Length; i++)
{
tmp[i] = br.ReadInt16();//br是二进制读取用的binaryReader
txtTmp.WriteLine(tmp.Length+" "+i.ToString()+" "+tmp[i]);
}

tmp.length数值是23766,但是从来没有循环完成,i经常循环到236XX这个范围的数就结束了,文本最后部分会显示
……
23766 23638 100
23766 23639 80
23766 23640 110
23766 23641 100
23766 23642 150
23
好像被掐断循环一样,而且每次中断结束的i值都不一样,最接近结果的一次是在23760时中断,这是为何呢,桌面版程序就不会出现这种情况。。。。
...全文
139 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
devmiao 2012-03-30
  • 打赏
  • 举报
回复
txtTmp.Flush();
  • 打赏
  • 举报
回复
调试运行最清楚
shshjun 2012-03-30
  • 打赏
  • 举报
回复
这个应该是什么地方超了maxLength了.查一下.或者把tmp.Length这个数不输出看是不是会完成整个循环.
accomp 2012-03-30
  • 打赏
  • 举报
回复
try catch, 找原因
bdmh 2012-03-30
  • 打赏
  • 举报
回复
先调试,看看报错时,br是否还有数据可读,是否有超出了Int16范围的数字
Rock870210 2012-03-30
  • 打赏
  • 举报
回复
加个Try Catch看看,或者里面加上if(i>=23642){
//里面什么都不写,断点打在这里调试看看怎么回事
}

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧