0

さて、以下のコードは、プログレスバーの進行状況の一例にすぎません。私は次の行を調整しています:(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
4

1 に答える 1

1

例を間違えた!そこでのスリープは、実際に時間のかかる操作を実証することです。あなたはそれを取り出して、実行する必要がある実際の操作を書く必要があります;)

于 2012-04-11T15:43:53.713 に答える