1:线程池 测试代码如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim callBack = New WaitCallback(AddressOf PooledFunc)
For Index As Integer = 1 To 10
ThreadPool.QueueUserWorkItem(callBack, Index)
Next
End Sub
Private Sub PooledFunc(ByVal Index As Integer)
Console.WriteLine(TimeValue(Now) & ":Start----" & Index) '输出索引 启动
Thread.Sleep(10000) '延时10秒
Console.WriteLine(TimeValue(Now) & ":End----" & Index) '输出索引 结束
End Sub
2: 执行后输出结果
16:41:07:Start----2
16:41:07:Start----1
16:41:07:Start----3
16:41:07:Start----4
16:41:08:Start----5
16:41:09:Start----6
16:41:10:Start----7
16:41:11:Start----8
16:41:12:Start----9
16:41:13:Start----10
16:41:17:End----2
16:41:17:End----1
16:41:17:End----4
16:41:17:End----3
16:41:18:End----5
16:41:19:End----6
16:41:20:End----7
16:41:21:End----8
16:41:22:End----9
16:41:23:End----10
想请教,为什么前四个线程之后的线程都是每秒才启动一个?有什么办法能让所有线程快速启动而不需要每秒一个的等待么?
非常感谢