【发布时间】:2013-04-10 11:58:04
【问题描述】:
好的,我有一个应用程序可以根据另一个应用程序创建的文件生成一些合同。
我已经实现了一个文件监视程序来监视正在创建的文件,然后它会启动一个backgroundworker 进程来根据文件名创建合同。
我遇到的问题是,在后台工作进程中,我将 EnableRaisingEvents 设置为 false,以便应用程序在第一个合同运行时不会开始处理另一组合同(这也是停止调用后台工作人员虽然它正在运行,因为它不能同时运行 2 个东西!)。
一切正常,另一个应用程序创建了一个文件,filewatcher 将其拾取并开始处理,问题是处理完成后,filewatcher 被重新启用,但我认为它不会拾取在 @ 时创建的任何文件987654323@ 是错误的 - 因此,如果创建初始文件以生成合同的应用程序碰巧在我的应用程序处理时创建了另一个文件,它将被留下。那有意义吗?最好的解决方法是什么?
我曾想过有另一个进程,当初始合同创建完成后,将在目录中查找在禁用文件监视程序时创建的其他文件,如果没有,则重新启用文件监视程序,但我想知道是否有更简单的方法可以做到这一点?
【问题讨论】:
-
您可以将更改的文件排队到 List
或更好的 Queue 中,然后按顺序处理队列