问题描述
这是VB.net中多线程(使用BackgroundWorker)的简单示例,其类(ClassJobs)已在主(UI)线程中初始化。
Public Class frmMain
Dim pClassJobs as New ClassJobs
Dim bwSecondaryThread As New System.ComponentModel.BackgroundWorker
Private Sub frmMain_Load(sender As Object,e As EventArgs) Handles MyBase.Load
AddHandler bwSecondaryThread.DoWork,AddressOf bwSecondaryThread_DoWork
End Sub
Private Sub ButtonPrimaryJob_Click(sender As Object,e As EventArgs) Handles ButtonPrimaryJob.Click
'Here the main (UI) thread call a sub from pClassJobs
Call pClassJobs.Job_A()
'Then the main thread launch the BackgroundWorker
Call bwSecondaryJobs.RunWorkerAsync()
End Sub
Private SUb bwSecondaryThread_DoWork
'Here the BackgroundWorker call a sub from pClassJobs
call pClassJobs.Job_B()
End Sub
End Class
问题::此处实例pClassJobs已在Main线程中初始化,但在BackgroundWorker中被调用。那么工作在哪里执行?
在已初始化pClassJobs的主线程中还是在已调用pClassJobs的BackgroundWorker线程中?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)