读书人

for i as integer =0 to 5000 利用第二

发布时间: 2012-07-20 10:38:30 作者: rapoo

for i as integer =0 to 5000 利用第二个线程显示进度条怎么办?
我想学习一下多线程开发,一个简单的想法是在for循环的同时显示进度条。
代码如下:

VB.NET code
Public Class Form1    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        ProgressBar1.Maximum = 5000        For i As Integer = 1 To 5000            ’要在这里开第二个线程用于进度条的显示            BackgroundWorker1.RunWorkerAsync(i)        Next    End Sub    ‘以下代码不会写了,请指点!    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork        ‘不会写了    End Sub    Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged        ’不会写了    End SubEnd Class


[解决办法]
你搞错了,应该把花费时间的操作(在这里是你的For循环)放在BackgroundWorker1_DoWork里,Button1_Click事件里只是触发BackgroundWorker组件,具体的方法MSDN上有一个很简单的例子:
http://msdn.microsoft.com/zh-cn/library/system.componentmodel.backgroundworker.aspx

读书人网 >VB Dotnet

热点推荐