Hi Oleg,
found another <Safehandle has been closed> Exception. It is thrown at an another point in your code. It is reproducible by setting the operation timeout to very small limit (e.g. 100ms) and downloading some files parallel. Please have a look at the stacktrace for further investigation:
Renci.SshNet.Common.SshException: Safehandle has been closed. ---> System.ObjectDisposedException: Safehandle has been closed. bei Renci.SshNet.Sftp.SubsystemSession.WaitHandle(WaitHandle waitHandle, TimeSpan operationTimeout) in D:\FTPDownloader\Renci.SshNet\SubsystemSession.cs:Zeile 171. bei Renci.SshNet.Sftp.SftpSession.RequestRealPath(String path, Boolean nullOnError) in D:\FTPDownloader\Renci.SshNet\Sftp\SftpSession.cs:Zeile 740. bei Renci.SshNet.Sftp.SftpSession.GetCanonicalPath(String path) in D:\FTPDownloader\Renci.SshNet\Sftp\SftpSession.cs:Zeile 112. bei Renci.SshNet.SftpClient.InternalDownloadFile(String path, Stream output, SftpDownloadAsyncResult asyncResult, Action`1 downloadCallback) in D:\FTPDownloader\Renci.SshNet\SftpClient.cs:Zeile 1392. bei Renci.SshNet.SftpClient.<>c__DisplayClassa.b__8() in D:\FTPDownloader\Renci.SshNet\SftpClient.cs:Zeile 522. bei Renci.SshNet.Common.AsyncResult.EndInvoke() in D:\FTPDownloader\Renci.SshNet\Common\AsyncResult.cs:Zeile 93. bei Renci.SshNet.SftpClient.EndDownloadFile(IAsyncResult asyncResult) in D:\FTPDownloader\Renci.SshNet\SftpClient.cs:Zeile 556. bei PortalService.FTPDownloader.Data.cls_sFTPDownloader.DownloadComplete(SftpDownloadAsyncResult oState) in D:\FTPDownloader\FTPDownloader.Data\FTP Classes\cls_sFTPDownloader.vb:Zeile 115.
Sorry for disturbing you again. Thanks :-)