由线程调用模块,如何控制主窗体的进度条
由线程调用模块,怎么控制主窗体的进度条?
Imports System.Threading
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim thread1 As Threading.Thread
thread1 = New Threading.Thread(AddressOf program1)
thread1.Start()
End Sub
End Class
''''''''''''''''''''''下面在模块里面
Module Module1
Public Sub program1()
Form1.ProgressBar1.Value = 50
End Sub
End Module
'''''''''''''''''''''''''''''''
不报错,进度条也没反应。。。求助。。。。。
------解决方案--------------------
好吧,新建一个项目,拉上两个ProgressBar,一个Button
窗体代码
类的代码
Imports System.Threading
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim thread1 As Threading.Thread
thread1 = New Threading.Thread(AddressOf program1)
thread1.Start()
End Sub
End Class
''''''''''''''''''''''下面在模块里面
Module Module1
Public Sub program1()
Form1.ProgressBar1.Value = 50
End Sub
End Module
'''''''''''''''''''''''''''''''
不报错,进度条也没反应。。。求助。。。。。
多线程
模块
进度条
------解决方案--------------------
好吧,新建一个项目,拉上两个ProgressBar,一个Button
窗体代码
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'a.i = Not a.i '暂停或继续的开关
Class1.i = Not Class1.i
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Show()
Me.ProgressBar1.Value = 0
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = 10000
Me.ProgressBar2.Maximum = 10000
Dim a As New Class1(Me)
For t As Integer = 0 To 10000 '感受线程
Application.DoEvents()
ProgressBar2.Value = t
Next
End Sub
End Class
类的代码
Public Class Class1
Dim a As Form = Nothing
Dim Thread1 As New System.Threading.Thread(AddressOf abc)
Public Shared i As Boolean = True, j As Integer = 0
Public Delegate Sub DelegateSub(ByVal text As String)
Public Sub New(ByVal TheForm As Form) '注意修改后NEW
a = TheForm