【发布时间】:2013-10-02 19:31:52
【问题描述】:
大家好,
我创建了一个线程来扫描桌面上的一些文件并使用它执行一些操作。问题是这个线程的进程只发生一次 - 当文件扫描完成时。
我使用该线程的目的是在不停止但的情况下随时扫描目录,而不会造成 CPU 使用溢出。我想使用一种聪明的方法来防止停止此扫描。
文件的操作是检查是否有特定的内容需要在那里,我正在扫描所有文件中的这个内容。
我尝试使用while无限循环样式:
public void bwScanning()
{
while(true)
{
// the whole code of scanning goes here.
}
}
但这太冒险了,因为该循环会抽取系统资源。
我想到了一些如何创建更智能的代码:
按计时器运行线程,延迟为 20 秒。但是,我不知道文件的数量是多少,以及完成扫描目录的过程需要多少时间..
可能创建线程数 - 在第一个线程完成后,创建一个新线程。 我觉得用这种方式很可笑,因为新的创建和内存占用。
有遇到同样问题的朋友可以指教一下吗?
【问题讨论】:
-
我不知道您需要对找到的文件做什么,但听起来您可能想查看
FileSystemWatcher -
@DaveZych 好的,我会读到的。
-
您是否查看过
Thread.Sleep()以暂停线程。我不确定您所说的使用该循环泵送系统资源是什么意思?
标签: c# .net multithreading