【发布时间】:2015-09-05 11:39:41
【问题描述】:
我有以下课程。
public class Foo
{
private string _DirName;
private FileStream _MyfileStream;
public FileStream MyfileStream
{
get { return _MyfileStream; }
}
public string DirName
{
get { return _DirName; }
set
{
_DirName = value;
_MyfileStream = new FileStream(value, FileMode.Create);
}
}
}
我创建了一个 Foo 列表,如下所示:
List<Foo> FooList = new List<Foo>();
FooList.Add(new Foo() { DirName = @"F:\sample\sample.txt" });
FooList.Add(new Foo() { DirName = @"D:\sample\file.pdf" });
所以每个列表项都在创建一个文件流。因此,流的数量随着列表项数量的增加而增加。我怎样才能为这些流分配分配的内存?
【问题讨论】:
-
“为这些流分配的内存”是什么意思?你知道什么是垃圾回收吗?如果您此时不打算读取文件,为什么要创建 FileStream?您想在哪个特定时间处理,为什么?答案显然是
FooList.ForEach(f => f.MyfileStream.Dispose()),但是这里的设计是有问题的。 -
你可以将流的路径保存为字符串。然后在需要时加载和卸载它。
标签: c# filestream dispose memorystream