I am using multiple threads that are using a list of items on my main form.

When I do the following:

Code Code:
  1. for i = 0 to 4
  2. Dim bk As New BackgroundWork(Me)
  3.         Dim t As New Threading.Thread(AddressOf bk.doIt)
  4.         t.Start()
  5. next i

Once each thread is done with an item it tells the main form to remove the top most item from the list.

However - All five threads are using the first item in the list before they finally start using unique items from the list.

I even tried delaying the start of each thread to prevent them from all starting at the same time but oddly this still happens.

What do you suggest?