バイナリファイルを読んでいて、何かが起こるのを待っている間、プログラムが何もしていないことに気づきました。
実行中のある時点でスタックしているように見えました。コンソールにいくつかのprintステートメントを追加しましたが、特定のポイントに到達していることがわかります...しかし、続行したくないようです。これは、コードの最初の数行です。
private BinaryReader inFile;
public void Parser(string path)
{
byte[] newBytes;
newBytes = File.ReadAllBytes(path);
using (MemoryStream ms = new MemoryStream())
{
ms.Write(newBytes, 0, newBytes.Length);
inFile = new BinaryReader(ms);
inFile.BaseStream.Seek(0, SeekOrigin.Begin);
}
}
public void ParseFile()
{
Console.WriteLine("parsing");
Console.WriteLine("get size to read"); // prints this out
int sizeToRead = inFile.ReadInt32();
Console.WriteLine("Size: {0}", sizeToRead); // doesn't print this out
Console.WriteLine("Done"); // end file processing
}
読み取りをコメントアウトすると、正常に機能します。の内容を新しいファイルにダンプしinFile
ましたが、元のファイルと同じであったため、有効なストリームである必要があります。
この問題のデバッグを続行する方法がわかりません。誰かが同様の問題に遭遇しましたか?
編集:申し訳ありませんが、私はさまざまな方法の断片を投稿していました。これが全体の方法です