gpt4 book ai didi

c# - 在使用 Directory.GetFiles() 的 C# 中,有没有一种方法可以在找到文件时启动线程而不必等待?

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:34 25 4
gpt4 key购买 nike

在使用 Directory.GetFiles() 的 C# 中,有没有一种方法可以在找到文件时启动线程?

行为似乎是“查找所有文件”,然后对每个文件执行您需要的操作。是否有另一个类允许在找到文件时启动线程(达到一定数量)?

最佳答案

您需要调用Directory.EnumerateFiles ,这是 .Net 4.0 的新功能。

这个方法返回一个惰性可枚举;每次调用 MoveNext() 时,它都会在文件系统中查询下一个文件。

你可以这样开始你的话题:

foreach(var dontUse in Directory.EnumerateFiles(...)) {
string path = dontUse; //Create a new variable for each closure
ThreadPool.QueueUserWorkItem(delegate {
...
});
}

临时变量是必要的,以确保每个委托(delegate)闭包引用一个单独的变量;否则,它们将共享相同的值,从而引起麻烦。

关于c# - 在使用 Directory.GetFiles() 的 C# 中,有没有一种方法可以在找到文件时启动线程而不必等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3983236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com