2

複数を作成したいのでFileStreams、それらを開いたままにしておく必要があります。I/O操作はありません。メモリ消費量はどうなりますか?このようなストリームを多数作成すると、システムのパフォーマンスに影響しますか?

4

1 に答える 1

0

つまり、ファイルストリームは管理されていないリソースであるため、開いたままにしておくことはお勧めできません。

.NET Frameworkアーキテクチャでは、コードで正しく管理されていない場合、管理されていないすべてのリソースがメモリの大きなリークを引き起こします。

「スコープから外したくないのですが、ガベージコレクターは最終的にDisposeを呼び出してストリームを強制終了します。しかし、ストリームを開いたままにしておきたいのです。」

ガベージコレクターは、Finalizeメソッドではなく、メソッド(デストラクタ)を呼び出しますDispose。ファイナライザーは、基になるストリームを破棄しない呼び出しDispose(false)を行います。基になるストリームを直接使用する必要がある場合は、goをスコープ外のままにしておくと問題ありません。必要に応じて、基になるストリームを手動で破棄するようにしてください。StreamReader

于 2012-12-16T14:46:11.730 に答える