微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在线程之间共享类的实例

如何解决在线程之间共享类的实例

这是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 举报,一经查实,本站将立刻删除。