クラスでストリーミングバイトを再生し、Player
クラスでファイルにバイトを書き込むエンジンクラスがありますStreamWriter
。
複数のエンジンと複数のプレーヤー/ライターを持つことができます。
ファイルを閉じる必要があるまで、すべて正常に動作します。私が閉じると言うとき、私はウェーブヘッダーを追加して何らかの操作を行うことを意味し、次にライターを破棄し、新しいライターを開いてバイトを書き込みます。
私の問題は、ファイルが小さい場合は問題ありませんが、ファイルが大きい場合(数Mb)は、ファイルを閉じる前にライターがnullになることです。どうすればこれを回避できますか?
いくつかのコード:
Engine
クラス
AddBytesAndSave(byte,[] stream)
{
writer.AddAndSave(stream);
// here i think i must wait untill the operation complete
writer.Dispose;
writer = null;
}
Writer
クラス
AddAndSave(byte[] stream)
{
writrToFileWorker.RunWorkerAsync(stream);
}