我即将实现原型 FileSystemWatcher 解决方案。我有一个目录来监视文件创建,以及吸收创建的文件并将其插入数据库的任务。粗略地说,这将涉及读取和处理 6 或 7、80 个字符的文本文件,这些文本文件以 150 毫秒的速率出现,每隔几秒发生一次,并且很少需要处理 2MB 的二进制文件。这很可能是一个 24/7 的过程。
根据我对 FileSystemWatcher 对象的了解,最好将其事件排入一个线程中,然后在另一个线程中出队/处理它们。我现在面临的困境是执行处理的线程的更好创建机制是什么。我可以看到的选择是:
每次我收到 FSW 事件时,我都会手动创建一个新线程(是的,我知道..愚蠢的架构,但我不得不说)。
每当我收到 FSW 事件时,就会在 CLR 线程池中进行处理
启动时,创建一个专用的第二个线程进行处理,并使用生产者/消费者模型来处理工作。主线程将请求入队,第二个线程将其出队并执行工作。
我倾向于将第三种方法作为首选方法,因为我知道工作线程始终是必需的 - 并且可能更是如此,因为我对线程池没有感觉。
If you know总是需要第二个线程,而且你也know如果您永远不需要多个工作线程,那么选项三就足够了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)