標準例外「System.ObjectDisposedException」についてです。
定義
例外
System.ObjectDisposedException
原因・意味
- 破棄されたオブジェクトに対して操作が実行された
(メソッドの呼び出し等が行われた)
対処法
- 破棄したオブジェクトにはアクセスしない
- オブジェクトは完全に使用しなくなってから破棄する
発生例
例)破棄したMemoryStreamに対してReadByte()を行う
using System.IO;
// メモリストリームの生成
MemoryStream ms = new MemoryStream(16);
// 破棄
ms.Dispose();
// 破棄したメモリストリームにアクセス
var a = ms.ReadByte(); //⇐例外発生
System.ObjectDisposedException: 'Cannot access a closed Stream.'
7行目で破棄したオブジェクトに10行目でアクセスしているため例外が発生します