文件流池
定义
命名空间:TouchSocket.Core
程序集:TouchSocket.Core.dll
一、说明
文件在读,或写的时候,一直都是独占状态。这个问题在不同进程中,似乎是合理的,但是如果在相同进程里,就会显得很呆。例如:我们在下载文件的时候,希望能同一时间多个读取同一个文件。且能有一个闭环的管理。那么,使用FilePool,就显得非常必要了。
二、使用读
从FilePool.GetReader的静态函数中,获取一个线程安全的文件读取访问器 ,该访问器具有读,和相关的操作属性。在每次读取后,Position会递增。
使用完成后,可以随时释放。
int len = 0;
byte[] buffer = new byte[1024 * 1024];
using (var reader = FilePool.GetReader(path))
{
while (true)
{
int r = reader.Read(buffer, 0, buffer.Length);
if (r == 0)
{
break;
}
len += r;
}
}
Console.WriteLine(len);
三、使用写
从FilePool.GetWriter的静态函数中,获取一个文件写入访问器线程安全,该访问器,具有写,和相关的操作属性。在每次写入后,Position会递增。
使用完成后,可以随时释放。
注意默认调用Dispose后,文件会根据创建类型是否为