问个关于多线程的小问题

橘子皮... 2016-03-04 11:45:39
如果在主线程里想开多个线程,跑某个任务,又不想主界面卡住,你们一般是怎么写的?
我现在是设置公共thread变量,然后主线程里调用个a1线程,a1里再New Thread(AddressOf a2)
然后a2里才在跑线程,这样主线程+2个function才能跑个多线程,感觉好麻烦啊,你们是怎么搞的
...全文
134 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
至于你说“主线程启动一个线程去调用a1,然后a1在启动一个线程去调用a2”,我不知道你是在干啥。可能是你学习编程时被猴哥派来的老师给忽悠了。
  • 打赏
  • 举报
回复
如果你一定要使用 Thead 对象,那么可以写
Public Sub Test()
    Dim t As New Thread(AddressOf abc)
    t.Start()
End Sub


Public Sub abc()

End Sub
或者使用匿名委托方式
Public Sub Test()
    Dim t As New Thread(Sub()
                            Dim m = 1 + 2
                            abc(m, "asdfasd")
                        End Sub)
    t.Start()
End Sub

Public Sub abc(x As Integer, y As String)

End Sub
不过通常我不回去使用 Thread。因为通常我开发服务器端,高并发,因此习惯于使用系统线程池来管理和分配线程,而不是无限制地创建 Thread 对象。所以写为
Public Sub Test()
    ThreadPool.QueueUserWorkItem(Sub()
                                        Dim x As String = DateTime.Now.ToString("yy-MM-dd")
                                        abc(12, x)
                                    End Sub)
End Sub

Public Sub abc(x As Integer, y As String)

End Sub
使用系统线程池来分配线程,而不是自己创建 Thread 对象!
Poopaye 2016-03-04
  • 打赏
  • 举报
回复
2个function?
xdashewan 2016-03-04
  • 打赏
  • 举报
回复
a1线程是什么东西,怎么弄出来的

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧