我需要构建一个Windows服务器端应用程序,负责接收大文件并处理它们(处理操作大约需要3个小时)。
有人能告诉我这种情况下最好的方法是什么(可能是Windows服务),在这种情况下,如何告诉服务新文件可供处理?
ps:流程操作不能并行处理
编辑:在查看了一些答案之后,我会尝试重新解决问题。上传部分已经在运行。我的问题是我必须在上传后对文件运行算法。该算法需要3个小时来处理单个文件。我想确保要处理的文件存储在某个地方(在内存中,在数据库中,它确实无关紧要),它只会在前一个完成时分析下一个文件。
答案 0 :(得分:0)
使用一些简单的数据收集来收集每个进程的线程。
例如,您可以像List一样使用并定义变量,该变量是当前正在处理的线程的索引。
答案 1 :(得分:0)
我建议设置一个ftp服务器,也许是一个FileSystemWatcher
来上传文件并处理它们
http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
答案 2 :(得分:0)
您可以使用BITS上传文件。该API here有一个C#包装器。
请注意,对于上传,有一个server-side dependency on IIS。
BITS是一种技术(在下载模式下),可以从update.microsoft.com自动将所需的安全性和其他更新添加到您的计算机上。
答案 3 :(得分:0)
我最终得到了一个控制台应用程序,当它处于空闲状态时(不处理任何文件)决定下一个文件应该处理并启动它。
应用程序配置为在引导计算机时启动。