I am trying to create an app that will ping all IP's in a subnet and if they are online attempt to gather WMI information from them. To do this I would like to check multiple IPs at once as one at a time would take ages. So I am trying to do as follows

VB Code:
  1. sub btnclcick
  2. Dim T1 As Thread
  3.  
  4.         For i = 1 To 255
  5.  
  6.             T1 = New Thread(AddressOf Collect)
  7.             T1.IsBackground = True
  8.             T1.Start()
  9.  
  10.         Next
  11. end sub
  12.  
  13. private sub collect()
  14. 'ping and get WMI
  15. end sub

Problem is each time the thread is restarted it starts the sub over before it can do anyting, how can I get multiple threads to open that same sub and all work at once?