This link helped me out a lot:

LINQ did need to be taken out of the equation so I could focus on getting a good model for updating the list box with data. Additionally, calling .ToArray off of LINQ worked perfect to get the query to happen on the seperate thread.

I imagine my work can all be improved but at least I have a frame of reference now. Thanks all!