首页 > 编程语言 > 详细

使用线程(节省时间)和委托(跨线程调用控件)的范例 2

时间:2019-12-18 17:53:58      阅读:88      评论:0      收藏:0      [点我收藏+]
 Private Sub tb_clientNumber_Leave(sender As Object, e As EventArgs) Handles tb_clientNumber.Leave
        ‘getResultsCount_thread()
        ‘  上面是直接获取这个客户号的交易数量,没有用线程,可以运行,但是不能节省时间
        ‘  下面是用线程的方式
        Dim t As Threading.Thread = New Threading.Thread(AddressOf getResultsCount_thread)
        t.SetApartmentState(Threading.ApartmentState.STA)
        t.IsBackground = True ‘ 在后台运行(随宿主关闭而关闭)
        t.Start()
  End Sub
 

 Private Sub getResultsCount_thread()   ‘  注意,耗时的操作要放在 线程里,不能放在具体方法里,否则无法节省时间
        Dim strSelect = "select count(*) "
        If isTesting() Then
            strSelect &= strFromUAT
        Else
            strSelect &= strFromProd
        End If
        strSelect &= " where cst_id = ‘" & String.Format("{0:000000}", CInt(tb_clientNumber.Text.Trim)) & "‘ and acc_ind = ‘03‘"
        Dim strCount03 = getDataString(strSelect)   ‘  这个查询数据库的操作是很耗时的
        ‘  注意,耗时的操作要放在 线程里,不能放在委托调用的具体方法里,否则无法节省时间
        ‘Me.Invoke(New _delegate(AddressOf UpdateText), strCount03)    ‘  调用委托
        lbl_count03All.Invoke(New Action(Sub()     ‘  lambda
                                                                    lbl_count03All.Text = strCount03
                                                                    lbl_count03All.Visible = True
                                                              End Sub
        ))
End Sub
 

使用线程(节省时间)和委托(跨线程调用控件)的范例 2

原文:https://www.cnblogs.com/gaoleionline/p/12061116.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!