准确的进度条更新到用户。 vb.net

时间:2015-09-25 03:06:02

标签: vb.net

嗨,我正在做一些复制的工作,并制作了一个进度条来更新给用户。我得到了我复制的文件数量,我在下面命名了计数器。而每个计数器/ 3,他们都会给出一个文本。但是,我遇到了问题,进度条不准确。我认为最大的原因是因为我每次都添加进度条50并且计数可以是像297,189,这不是50的时代。 任何人都可以帮助欢呼。

        Dim counter = Directory.GetFiles(fileToCopy, "*", SearchOption.AllDirectories).Length
        ProgressBar1.Increment(50)
        Dim fileSize = GetFolderSize(fileToCopy)
        If ProgressBar1.Value < Math.Ceiling(counter / 3) And ProgressBar1.Value > 0 Then
            Label5.Text = ("1/3 of files already Copied")
        End If
        If ProgressBar1.Value < Math.Ceiling(counter * 2 / 3) And ProgressBar1.Value > Math.Ceiling(counter / 3) Then
            Label5.Text = ("2/3 of files already Copied")
        End If
        ProgressBar1.Maximum = counter


        If ProgressBar1.Value = ProgressBar1.Maximum Then
            Timer1.Stop()
            Label5.Text = ("Copied is all done")

1 个答案:

答案 0 :(得分:0)

看一下AsyncMethodHandlers

http://www.codeproject.com/Articles/29925/Responsive-UIs-for-WPF-Applications-Using-Asynchro

这可以让你走上正轨。它也有vb.net代码。