I am a beginner with WPF, in my application I need to
preform a series of Initialisation steps, these take 7-8 seconds to complete
during which my UI becomes unresponsive. To resolve this I preform the initialisation
in a separate thread:

I have read a few articles about the BackgroundWorker and
how it should allow me to keep my application responsive without ever having to
write a thread to preform lengthy tasks but I haven't had any success trying to
implement it, could anyone tell how I would do this using the BackgroundWorker?

Also if you want to report process progress you should
subscribe to ProgressChanged event and use ReportProgress(Int32) in DoWork
method to raise an event. Also set following: worker.WorkerReportsProgress =
true; (thanks to @zagy)