我正在尝试使用FileStream对象从网络上的不同文件中读取数据。 所以我创建了Tasks(System.Threading.Tasks)来读取所需文件的一部分。
这种行为让我感到很惊讶。这些任务会引发错误:
int_ReadBytes = stm_BaseStream.Read (byt_buffer, 0, ( int ) ( int_RecordLength * uint_BufferThis ));
if (int_ReadBytes != ( int_RecordLength * uint_BufferThis ))
{
throw new Exception ("Could not read record");
// throws an error here.
}
任何人使用Task with FileStream对象,或者知道我为什么会遇到这个问题? 谢谢。
答案 0 :(得分:0)
int_ReadBytes
的返回值是多少?它可能不等于(int_RecordLength * uint_BufferThis)
,因为文件中没有足够的字节可供读取,这将导致代码抛出异常。