【发布时间】:2015-04-16 19:47:39
【问题描述】:
我的项目陷入了死胡同。我在我的 Form1 中运行 BackgroundWorker (在 FTPclient 类中),它像这样在不同的类 (称为 FTPengine) 中启动 FTP 文件下载功能(称为下载) .
(我自然地在后台线程中运行它,因此当从 FTP 下载大数据时 UI 不会卡住。)
private void download_DoWork(object sender, DoWorkEventArgs e)
{
ftp ftpClient = new ftp(parameters[0], parameters[1], parameters[2]); //Init connection
ftpClient.download(file, localfile); //Start download
}
我有一个名为“报告进度”的函数(在 FTP 引擎类中),它返回两个整数(以字节为单位的文件大小和当前下载的字节)。我需要将这两个整数返回给 UI 线程并将进度报告到 ProgressBar 元素中。
我多次尝试使用调用方法和 Backgroundworker reportprogress,但由于代码实际上并不直接在 backgroundworker 中,而是在完全不同的类中,所以我没有运气。我搜索了网络等等,但没有结果。如果有人知道需要进行哪些更改,将不胜感激。
【问题讨论】:
标签: c# multithreading class ftp backgroundworker