, pavone wrote

 Thanks guys, it needs to be synchronous with respect to that one function, it should run in parallel with other threads before then. I wasn't too excited on using simply checking for null, because then I'm not sure if the thread ever ran at all.

I'll look into Tasks and see if it solves my problem.  

Update 1

Not sure if tasks is what I need since this is an Event driven app. When a user does something I then try to Join the thread that should have been started a while ago and will most likely be finished. 

Update 2

I feel a little more background would be of use. I have an app that currently loads information from a database when user selects an option from a drop down menu, there are few options, so I though I could pre-fetch the most used ones so there's no delay. 

Ah ok. Well, sticking with Task you chould in your class have your

Task databaseLoader = new Task blahblahblah

and start it running when you app starts.

Then inside your event you can check the databaseLoader.IsCompleted(), if it's not (and it's not faulted) then Task.WaitAll(databaseLoader);