面向对象——多线程 和 委托
1. 简单线程
Public Class Form1
'多线程,同时进行几项工作
'多核电脑,4核
'4线程
'同时运行多个应用软件
'任务管理器
'一个线程可以管理多个程序
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'创建线程
Dim XC As New Threading.Thread(AddressOf 线程1)
Dim XC2 As New Threading.Thread(AddressOf 线程2)
'启动线程
XC.Start()
XC2.Start()
Threading.Thread.Sleep(500)
Console.WriteLine("向下运行")
End Sub
Private Sub 线程1()
For i = 0 To 9
Console.WriteLine(i)
Threading.Thread.Sleep(500)
Next
End Sub
Private Sub 线程2()
For i = 10 To 19
Console.WriteLine(i)
Threading.Thread.Sleep(1000)
Next
End Sub
End Class
2. 委托
委托定义方法
Sub 委托过程(参数 As Integer)
Label1.Text += 参数
End Sub
委托的一种调用方法
Label1.Invoke(Sub() 委托过程(1))
在程序中使用的全过程、主要实现计时功能,包含启动、暂停、继续、停止。界面样式:
程序:
Imports System.Security.Cryptography.X509Certificates
Public Class Form1
'多线程,同时进行几项工作
'多核电脑,4核
'4线程
'同时运行多个应用软件
'任务管理器
'一个线程可以管理多个程序
Dim XC2 As Threading.Thread
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
XC2 = New Threading.Thread(AddressOf 线程2)
XC2.Start()
End Sub
'Private Sub 线程1()
' For i = 0 To 9
' Console.WriteLine(i)
' Threading.Thread.Sleep(500)
' Next
'End Sub
Private Sub 线程2()
Try
For i = 10 To 19
'委托
Label1.Invoke(Sub() 委托过程(1))
Threading.Thread.Sleep(1000)
Next
Catch ex As Exception
End Try
End Sub
Sub 委托过程(参数 As Integer)
Label1.Text += 参数
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Try
XC2.Suspend()
Catch ex As Exception
End Try
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Try
XC2.Resume()
Catch ex As Exception
End Try
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
XC2.Abort()
End Sub
End Class
以上
e Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
XC2.Abort()
End Sub
End Class
*以上*