I'm working on a program trying to add multithreading, but really what I'm doing here is opening a single thread so that the program doesn't freeze. Here's the basic pseudo code of what's messing up. Code: Imports System.Threading Public Class main Private Sub CheckPR() 'This uses a function to check the pagerank and add to a listbox. End Sub Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick If lstQue.Items.Count > 0 Then Dim firstThread As New Thread(New ThreadStart(AddressOf CheckPR)) firstThread.Start() End If End Sub End Class If there's anything in lstQue (the Queued listbox) then it needs to check the PR. Here's what it's doing: http://i.imgur.com/LZKXc.png Empty additions in the checked PR list. Why?