C# 什么';定期从网络共享文件夹读取文件的最有效方法是什么?
目标是定期从另一个程序输出文件的文件夹中读取文件,然后将文件输入到我代码的另一部分 如何在性能与可读性和易用性代码之间实现最佳平衡C# 什么';定期从网络共享文件夹读取文件的最有效方法是什么?,c#,java,windows,file,io,C#,Java,Windows,File,Io,目标是定期从另一个程序输出文件的文件夹中读取文件,然后将文件输入到我代码的另一部分 如何在性能与可读性和易用性代码之间实现最佳平衡 (我需要在C#和Java中完成这项工作。因此,双重标记(不,这不是家庭作业:)在Java中,您可以使用watch服务。我相信它使用与C#相同的底层系统调用 对于大多数程序来说,I/O都是一个瓶颈,但是如果你想提高性能,你可以做一些事情来帮助你。第一,只有在你需要的时候才读。这可以通过使用FileSystemWatcher在文件更改时告诉您来实现。第二种方法是,如果可
(我需要在C#和Java中完成这项工作。因此,双重标记(不,这不是家庭作业:)在Java中,您可以使用watch服务。我相信它使用与C#相同的底层系统调用
对于大多数程序来说,I/O都是一个瓶颈,但是如果你想提高性能,你可以做一些事情来帮助你。第一,只有在你需要的时候才读。这可以通过使用FileSystemWatcher在文件更改时告诉您来实现。第二种方法是,如果可能的话,如果可以继续而不完成操作,则生成一个新线程来执行I/O。尝试c中的
FileSystemWatcher
;效率取决于文件大小和轮询频率。但是,如果writer使用“file.dat.partial”这样的临时名称编写文件,并在完成后将其重命名为“file.dat”,则可以避免很多麻烦。重命名在所有操作系统中都是原子的。您的轮询应该只查看这些非部分文件,并在成功获取后删除它们。有关FileSystemWatcher,请参阅和