在一个Windows表单中,我有:
我试图通过在备份开始时停止FileSystemWatcher,并在完成后重新启动它来防止这种情况发生。
另一方面,在ImportNewFile 的开头,我设置了tmrBackup.Stop(),然后将文件内容转换为本地数据库中的记录。在ImportNewFile的结尾处,我再次设置tmrBackup.Start()。但是计时器永远不会重新启动,因此似乎这不是可行的方法。
然而,如果我不设置tmrBackup.Stop(),则在调试期间会看到奇怪的行为:当ImportNewFile中某个位置触发计时器时,似乎两个例程都在并行运行:执行tmrBackup例程中的一行,然后VB.Net跳回ImportNewFile一行,然后返回计时器等。
问题:如何正确处理两个对象,使每个对象在处理另一个对象的事件时都能触发?谢谢!
- 定时器tmrBackup 定期备份本地数据库
- 当FileSystemWatcher检测到给定目录中的新文件时,引发过程ImportNewFile的事件过程。
我试图通过在备份开始时停止FileSystemWatcher,并在完成后重新启动它来防止这种情况发生。
另一方面,在ImportNewFile 的开头,我设置了tmrBackup.Stop(),然后将文件内容转换为本地数据库中的记录。在ImportNewFile的结尾处,我再次设置tmrBackup.Start()。但是计时器永远不会重新启动,因此似乎这不是可行的方法。
然而,如果我不设置tmrBackup.Stop(),则在调试期间会看到奇怪的行为:当ImportNewFile中某个位置触发计时器时,似乎两个例程都在并行运行:执行tmrBackup例程中的一行,然后VB.Net跳回ImportNewFile一行,然后返回计时器等。
问题:如何正确处理两个对象,使每个对象在处理另一个对象的事件时都能触发?谢谢!