Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 停止文件系统回显/循环_C#_File_Google Drive Api_Synchronization_Filesystemwatcher - Fatal编程技术网

C# 停止文件系统回显/循环

C# 停止文件系统回显/循环,c#,file,google-drive-api,synchronization,filesystemwatcher,C#,File,Google Drive Api,Synchronization,Filesystemwatcher,我正在制作一个应用程序,使用FileSystemWatcher类为本地更改和Google的驱动器更改(列表)API同步远程和本地文件树 远程进行更改时,会在更改列表中检测到更改,并应用于用户本地驱动器 然后,这会触发FileSystemWatcher类来回推(回显)本地更改 如果我没有跳过本地更改推送时引发的远程事件,这将无限循环 我可以这样做: Watcher.EnableRaisingEvents = false; DoWorkToFileTree(); Watcher.EnableRais

我正在制作一个应用程序,使用FileSystemWatcher类为本地更改和Google的驱动器更改(列表)API同步远程和本地文件树

远程进行更改时,会在更改列表中检测到更改,并应用于用户本地驱动器

然后,这会触发FileSystemWatcher类来回推(回显)本地更改

如果我没有跳过本地更改推送时引发的远程事件,这将无限循环

我可以这样做:

Watcher.EnableRaisingEvents = false;
DoWorkToFileTree();
Watcher.EnableRaisingEvents = true;
但这似乎不是好代码。此外,很明显,如果在工作进行期间进行了更改,则会错过更改

我还担心跳过远程事件会导致我错过在推送本地事件时发生的任何远程事件

如果我让回显事件上升,将发生循环。 如果不这样做,我将错过在处理事件时发生的更改

我也考虑过用某种形式的“IgnoreMe”属性标记事件,但这似乎很危险;这是个好主意吗

最好的治疗方法是什么

我觉得我遗漏了一些东西,一种处理这种同步的标准技术