题主是否想询问“vbnet同时执行多个任务怎么实现”?多线程操作。vbnet同时执行多个任务通过多线程操作实现,Visual Basic.net,属于计算机软件领域,是计算机中实现网络功能的编程语言。
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于做网站、网站建设、攀枝花网络推广、小程序制作、攀枝花网络营销、攀枝花企业策划、攀枝花品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供攀枝花建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
ListBox操作需要用Invoke。另外多线程方式并不是并行处理。
建议采用.net framework 4 带的并行处理循环操作,若不是4.0版本的framework,可以使用Aforge的并行库比较方便。
例子1:
Dim result As ParallelLoopResult = Parallel.[For](0, 10, Function(i)
Console.WriteLine("{0}, task: {1} , thread: {2}", i, Task.CurrentId, Thread.CurrentThread.ManagedThreadId)
Thread.Sleep(10)
End Function)
Console.WriteLine(result.IsCompleted)
例子2:
Parallel.For(Of String)(0, 20,
Function()
Console.WriteLine("init thread {0}, task {1}", Thread.CurrentThread.ManagedThreadId, Task.CurrentId)
Return String.Format("t: {0}", Thread.CurrentThread.ManagedThreadId)
End Function,
Function(i, pls, str)
Console.WriteLine("body i {0} str1 {1} thread {2} task {3}", i, str, Thread.CurrentThread.ManagedThreadId, Task.CurrentId)
Return String.Format("i {0}", i)
End Function,
Function(str1)
Console.WriteLine("finally {0}", str1)
End Function)
多线程并不一定就可以缩短时间,具体要看你上面的“过程”是否调用数据库完成。如果调用了数据库,可以考虑用存储过程替代“过程”。另外看看“过程”里是否反复打开和关闭了数据库连接,如果是,这才是真正的耗时动作。如果没调用数据库,可以考虑使用Parallel类(.net4以后)里面的函数,使多个任务在多核CPU上并行运行,缩短时间。