Я работаю над загрузкой файла на filehost.Я использую listgridview, чтобы показать имя файла и его размер, а также индикатор выполнения для каждого отдельного файла, как показано ниже. Просмотр таблицы списка. Я выполняю загрузку в классной форме.
Из основного класса я вызываю класс openload, чтобы указать местоположение файла.В классе загрузки openload я проверяю аутентификацию, получаю адрес загрузки и отправляю этот адрес загрузки другому классу с именем Upload, который выполняет загрузку multipart / form-data.
Все работает без использования индикатора выполнения.Но я хочу, чтобы индикатор выполнения работал успешно.
Я использую 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где он проверяет аутентификацию и предоставляет ссылку для загрузки класса загрузки.
Upload Upload = new FileHost.Upload();
Thread Uploading = new Thread(() =>
{
UploadResult = Upload.UploadFilesToRemoteUrl(UploadURL, FileName, null);
});
Uploading.Start();
в моем классе загрузки он выполняет загрузку в потоковом формате.
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;
}
}
также обеспечивает прогресс загрузки.но я хочу предоставить ценность прогресса фоновому отчету о прогрессе.но я не могу вызывать фонового работника основного класса для рабочего класса, т.е. загружать класс.
есть ли метод или делегат для вызова фонового работника основного класса в другом классе.