我正在将文件上传到Filehost。我正在使用listgridview显示文件名及其大小,以及每个单独文件的进度栏,如下所示。 List Grid View. 我正在以课堂方式进行上传。
从主类中,我正在调用openload类以提供文件位置。在openload上载类中,我检查身份验证并获取上载地址,并将该上载地址发送到另一个名为Upload的类中,该类执行分段/表单数据上载。
一切正常,无需使用进度条。但是我想实现进度条才能成功运行。
我在主类中使用backgroundworker调用openload函数并提供文件位置。
private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
if (!string.IsNullOrEmpty(File))
{
var Link = new FileHost.Openload();
OutputBox.Text = Link.Upload(File);
}
}
然后转到openload类,在其中检查身份验证并为上载类提供上载URL。
Upload Upload = new FileHost.Upload();
Thread Uploading = new Thread(() =>
{
UploadResult = Upload.UploadFilesToRemoteUrl(UploadURL, FileName, null);
});
Uploading.Start();
在我的Upload类中,它以流格式执行上传。
using (var fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
{
var buffer = new byte[1024];
int totalReadBytesCount = 0;
var bytesRead = 0;
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
{
memStream.Write(buffer, 0, bytesRead);
totalReadBytesCount += bytesRead;
var progress = totalReadBytesCount * 100.0 / fileStream.Length;
}
}
它还提供了上传进度。但是我想为backgroundworker reportprogress提供进步的价值。 但是我不能叫主要班级的背景工来上班,即上课。
在其他类中是否有任何方法或委托来调用主类的背景工作人员。