さて、以下のコードは、プログレスバーの進行状況の一例にすぎません。私は次の行を調整しています:(System.Threading.Thread.Sleep(100)
速いプロセス)またはSystem.Threading.Thread.Sleep(2000)
(遅いプロセス)。
これをその場で調整する方法はありますか?
少し背景情報が役立つかもしれません。私は毎日、数百から数千の範囲のPDFを作成しています。次に、すべてのPDFが圧縮され、SFTP経由で転送されます。PDFサイズも異なる場合があります。
処理する小さなPDFがほんの一握りしかない場合は、明らかに私System.Threading.Thread.Sleep(100)
はローエンドになります。
これで元の質問に戻りますが、PDFの数とすべてのサイズに基づいて、そのスリープ数をその場で調整できますか?
または、テスト実行を処理して、使用する魔法の数字を見つける必要がありますか?
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim ZipPDFs As BackgroundWorker = CType(sender, BackgroundWorker)
Dim i As Integer
For i = 1 To 10
If (ZipPDFs.CancellationPending = True) Then
e.Cancel = True
Exit For
Else
' Perform a time consuming operation and report progress.
System.Threading.Thread.Sleep(100)
ZipPDFs.ReportProgress(i * 10)
End If
Next
End Sub