试图了解后台工作人员:)
Imports System.Threading
Imports System
Imports System.IO
Imports System.Windows.Forms
Imports System.ComponentModel
Imports System.Text.RegularExpressions
Imports System.Text
Imports System.Diagnostics
Imports System.Drawing
Public Class CLViewForm
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
BackgroundWorker1.RunWorkerAsync()
End Sub
Function SystemLoads()
Dim PCV As Integer = Convert.ToDecimal(PerformanceCounter1.NextValue())
Me.Label5.Text = PCV & " %"
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = 100
Me.ProgressBar1.Step = 1
Me.ProgressBar1.Value = PCV
Me.Label6.Text = Now.ToLongTimeString
Return 0
End Function
Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Me.Invoke(SystemLoads())
End Sub
End Class
我正在尝试做的基本要点是加载一个后台工作程序,它在主窗体上更新 3 个内容一个进度条,显示当前系统加载一个文本标签,按百分比显示负载和一个时钟
我知道我可以用一个简单的计时器来完成这一切,但是当我添加其他计时器时,它往往会使表单变得迟缓,所以我想学习如何将我想做的大部分事情拍摄到背景中线。
我对这一切都很陌生,所以我不知道如何调用这些东西并对其保持线程安全,因此我收到一个错误[当然,这就是我在这里问的原因:)],上面写着“vb.net cross -线程操作无效控制'progressbar1'从一个线程访问,而不是它被调用“
或类似的东西。
使用我提供的代码示例如何使后台线程更新表单的进度条和 % 标签?
TIA