C# 在我的案例中,实现文件监视的最佳方法是什么?
这就是我的C#程序的大致外观C# 在我的案例中,实现文件监视的最佳方法是什么?,c#,C#,这就是我的C#程序的大致外观 Main() // call to method that reads XML file and loads it into a list of structure // call to method that works on the structure, manpulates data etc. // call to method that starts filewatching Filwatching_method() // if
Main()
// call to method that reads XML file and loads it into a list of structure
// call to method that works on the structure, manpulates data etc.
// call to method that starts filewatching
Filwatching_method()
// if any change is detected, calls method OnChange
OnChange()
// Action on change
如果调用了
OnChange
方法,即检测到更改,我想再次重复整个过程。我应该从OnChange
调用Main(),或者还有其他更好的方法吗?您可以查看一个类,该类允许您监视文件系统上发生的事件(如文件被更改)并收到通知。您可以查看一个类,该类允许您监视文件系统上发生的事件(如文件被更改)并收到通知。创建一个对象抛出多个事件,您可以以不同的方式处理每个事件 创建一个抛出多个事件的对象,您可以以不同方式处理每个事件 就我个人而言,这就是我的想法
是的,您应该从OnChange
方法调用Main
,如果这确实是您想要做的(即,再次运行Main
)
但是为了防止不受控制的递归,您应该确保从Main
中执行的文件操作本身不会触发OnChange
。这可以通过设置标志或临时删除Changed
处理程序,并在完成后将其添加回
就我个人而言,这是我的想法
是的,您应该从OnChange
方法调用Main
,如果这确实是您想要做的(即,再次运行Main
)
但是为了防止不受控制的递归,您应该确保从Main
中执行的文件操作本身不会触发OnChange
。这可以通过设置标志或临时删除Changed
处理程序,并在完成后将其添加回
我已经研究了这个链接,并实现了FileWatcher。我不知道如何重复整个过程,即在发生变化时从头开始重新启动我的程序。我已经研究了该链接,并实现了FileWatcher。我不知道如何重复整个过程,也就是说,在发生变化的情况下从头开始重新开始我的程序。明白了。实际上,我并不是在main中操作文件。我只读它,然后处理加载到内存中的内容并将其写入另一个文件。然而,当我从main()读取文件时,会不会导致FileWatcher触发OnChange方法?@xbonez:我真的不确定;如果监视程序设置为监视文件的上次访问属性,则可能会触发该事件。但是你可以自己测试一下,明白了。实际上,我并不是在main中操作文件。我只读它,然后处理加载到内存中的内容并将其写入另一个文件。然而,当我从main()读取文件时,会不会导致FileWatcher触发OnChange方法?@xbonez:我真的不确定;如果监视程序设置为监视文件的上次访问属性,则可能会触发该事件。但是你可以自己很容易地测试一下。