调整Thread.Sleep基于各种标准

时间:2012-04-11 14:59:45

标签: visual-studio-2010 progress-bar thread-sleep

好的,所以下面的代码只是我如何推进进度条的一个示例。 我一直在调整以下行: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

1 个答案:

答案 0 :(得分:1)

你的例子错了!在那里睡觉,是为了展示一个真正耗时的操作。您需要将其取出,并编写您需要执行的实际操作;)