2015-12-02 3 views
0

У меня есть один класс функция для загрузки файла на S3:C# Amazon S3 Загрузить файл с ProgressBar

public void UploadFile(string filePath, UploadProgress uploadProgress) 
    { 
     TransferUtilityUploadRequest uploadRequest; 
     TransferUtility fileTransferUtility; 

     try 
     { 
      mClient = new AmazonS3Client(Amazon.RegionEndpoint.EUWest1); 

      uploadRequest = 
       new TransferUtilityUploadRequest 
       { 
        BucketName = BUCKETNAME, 
        FilePath = filePath 
       }; 

      uploadRequest.UploadProgressEvent += new EventHandler<UploadProgressArgs>(uploadProgress); 

      fileTransferUtility = new TransferUtility(mClient); 
      fileTransferUtility.Upload(uploadRequest); 
     } 
     catch (AmazonS3Exception s3Exception) 
     { 
      throw s3Exception; 
     } 
    } 

Из класса формы, у меня есть функция для обновления в ProgressBar:

private void UploadFile_ProgressBar(object sender, UploadProgressArgs e) 
    { 
     int pctProgress = (int)(e.TransferredBytes * 100/e.TotalBytes); 
     progressBarUpload.Value = pctProgress; 
     progressBarUpload.Invalidate(); 

     Console.WriteLine(e.TransferredBytes + "/" + e.TotalBytes + Environment.NewLine);    
    } 

И звонок для загрузки файла:

mS3.UploadFile(fileToUpload, UploadFile_ProgressBar); 

Консоль показывает прогресс, но прогресс не работает. Что я делаю не так?

Заранее благодарен!

ответ

1

Я считаю, что вы создаете приложение Windows Form с вашей панелью прогресса. Итак, проверьте это: http://www.dotnetperls.com/progressbar

Кроме того, я видел, что вы используете метод .Invalidate of Progressbar. Как говорит документация, этот метод вызывает синхронную краску без метода обновления. Попробуйте.

Вызов метода Invalidate не вызывает синхронную краску; для принудительной синхронной краски вызовите метод Update после вызова метода Invalidate. Когда этот метод вызывается без параметров, вся область клиента добавляется в область обновления.

https://msdn.microsoft.com/en-us/library/598t492a(v=vs.100).aspx

Ура!

Смежные вопросы