在线程之间共享类的实例

问题描述

这是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 (将#修改为@)