main(string[] args) {
string file = @"D:\123.txt";
using (FileStream f = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.Read))
{
f.Position = 0;
StartReadBookThread(f);
}
}
//this is a public API for user
public static Thread StartReadBookThread(Stream stream)
{
Console.WriteLine("CanSeek:" + stream.CanSeek);
var t = new Thread(() => DoReadBook(stream));
t.Start();
return t;
}
private static void DoReadBook(Stream stream)
{
Console.WriteLine("CanSeek:" + stream.CanSeek);
}
Run Code Online (Sandbox Code Playgroud)
在DoReadBook方法中,流变为关闭,CanSeek变为假。
如果我想在线程中读取流,如何处理它,一般的方法是我们为用户提供一个公共 API StartReadBookThread 并在线程中运行。用户我们总是喜欢以建议 using(){} ... 方式调用参数文件流。那么我们如何才能更好地读取文件。你知道我们只是在一个线程中完成它,有时它可能会被关闭。