Imports System.Threading '导入命名空间
Public Class Form1
Dim t As Thread ''定义全局线程变量
Private Delegate Sub voiddelegate(ByRef i As Integer) '' 添加委托声明代码(带一个参数)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ListBox1.Items.Clear()
t = New Thread(AddressOf Test) ''创建线程,使它指向test过程,注意该过程不能带有参数
t.Start() ''启动线程
End Sub
Private Sub Test()
For i = 0 To 9000
Me.Invoke(New voiddelegate(AddressOf UpdateUI1), i) ''使用Me.Invoke调用委托,执行UpdateUI,并向里面传一个参数i
Next
t.Abort()
End Sub
Private Sub UpdateUI1(ByRef i As Integer) ''控件更新过程(带一个参数)
ListBox1.Items.Add(i)
End Sub
End Class
vb.net 通过线程的方式更新控件ListBox中的项避免卡顿
最新推荐文章于 2021-09-29 17:38:45 发布