我有数以千计的文件位于FTP服务器。我的任务是从ftpserver下载文件,然后解压缩文件,然后处理文件。对于下载我使用Tamir
库和解压缩我使用Ionic.zip
然后处理文件。如何通过在c#中使用线程来加紧工作?
当我使用的线程,下载从FTP服务器的文件停止,不知道其中的原因,也许FTP服务器不允许使用线程下载文件。然后我使用线程来解压缩文件并进行处理。这也因为错误而失败,如
进程无法访问文件'文件',因为它正在被另一个进程使用。
所以现在我正在依次做的一切。代码原型如下图所示
static void Main(string[] args)
{
string FTPpah = "d://Testpath";
DonloadUnzipProcessFile(FTPpah);
}
private static void DonloadUnzipProcessFile(string FTPpah)
{
string Localpath = @"e://testpath";
//Using Tamir libraryr
DownloadFile(FTPpah,Localpath);
//Ionic.zip library
UnzipFile(Localpath);
//c#code
ProcessFile(Localpath);
}
有没有什么办法可以提高使用Threads
或Process
这项任务?
编辑
从FTP服务器上下载不能用线程来完成?如果是这样,我想通过使用任务解压缩和处理。因此,我将创建10个任务(TPL),每个任务需要10个文件并解压缩,然后执行10个任务,这样的情况有可能吗?
搜索TPL数据流 –
塔米尔/ SharpSSH库是SFTP库,而不是一个FTP库。这是完全不同的东西+这是一个死了的项目,不会维持多年。不要使用它! –
异步等待是要走的路,这样的IO操作,不得在线程完成,会降低系统的可扩展性 –