我将实现一个线程池来运行我的应用程序。我所有的内容都保存在我桌面上的一个文件夹下。
每个文件都是 .txt 格式。如何从给定文件夹中读取每个 .txt 文件,然后将 .txt 文件放入线程池/线程队列中?
我将实现一个线程池来运行我的应用程序。我所有的内容都保存在我桌面上的一个文件夹下。
每个文件都是 .txt 格式。如何从给定文件夹中读取每个 .txt 文件,然后将 .txt 文件放入线程池/线程队列中?
这些将是开始寻找的好地方:ThreadPool.QueueUserWorkItem和Directory.GetFiles
抱歉,我的 vb.net 生锈了,但这是 C#。
foreach (string file in Directory.GetFiles(folder, "*.txt"))
ThreadPool.QueueUserWorkItem(ProcessFile, file);
void ProcessFile(Object fileNameObject)
{
string fileName = (string)fileNameObject;
string contents = File.ReadAllText(fileName);
// ... process contents here.
}
您的问题表示想要阅读,然后推入线程池,但我会反过来这样做,这样您就不会耗尽内存。将文件路径排入线程池中,然后让工作线程线程读取文件。