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(){} ... 方式调用参数文件流。那么我们如何才能更好地读取文件。你知道我们只是在一个线程中完成它,有时它可能会被关闭。
您的流在StartReadBookThread返回时被处理,并且您}在main.
您的工作流程基本上是:
FileStream)。Thread)。using声明)。| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |