0

我将实现一个线程池来运行我的应用程序。我所有的内容都保存在我桌面上的一个文件夹下。

每个文件都是 .txt 格式。如何从给定文件夹中读取每个 .txt 文件,然后将 .txt 文件放入线程池/线程队列中?

4

1 回答 1

1

这些将是开始寻找的好地方:ThreadPool.QueueUserWorkItemDirectory.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.
}

您的问题表示想要阅读,然后推入线程池,但我会反过来这样做,这样您就不会耗尽内存。将文件路径排入线程池中,然后让工作线程线程读取文件。

于 2012-05-29T17:35:40.337 回答