2016-05-25 7 views
-2

この場合、progressBarは100%から0%に開始するように報告しています しかし、進捗状況を報告して0%から100%になるようにします。進捗状況を報告するループを作成する方法

private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e) 
{ 
    int counter = 0; 
    MimekitallLoadedMessages = new List<MimeKit.MimeMessage>(); 
    MimeKit.MimeMessage loadedMessage = null; 
    DirectoryInfo di = new DirectoryInfo(emailsDirectory); 
    FileInfo[] files = di.GetFiles();//new FileInfo(@"e:\testmail\" + emailNumber + ".eml"); 
    for (int i = 0; i < files.Length; i++) 
    { 
     string uid = seenUids[0]; 
     loadedMessage = MimeKit.MimeMessage.Load(files[i].FullName); 
     MimekitallLoadedMessages.Add(loadedMessage); 
     downloaded.Add(seenUids[i]); 
     counter += 1; 
     nProgress = (files.Length - i + 1) * 100/files.Length; 
     backgroundWorker2.ReportProgress(nProgress, files.Length.ToString() + "/" + i); 
    } 
} 
+4

この "あなたの"コードの行を読んでください: 'nProgress =(files.Length - i + 1)* 100/files.Length;'そしてそれが何をしているのか理解しようとします。それはあなたが変更する必要がある行です。 – Blorgbeard

答えて

0
  • あなたはcounter変数を持っているので、余分なカウントは必要ありません。
  • あなたの端数が割合に分数/小数を変換するにはLength
  • counterとなり、結果は100

掛け合わされ一緒にすべてを入れて、あなたが得る:

nProgress = (counter/files.Length) * 100; 
関連する問題