It is hard to make a Thread and control it well. However, using a Backgroundworker is much easier until you need to pause/resume it.
Can we make a Backgroundworker pause-ready? Yes. I have joined a discussion on the MSDN Forums. It seems that we approach to a solution finally. I have contributed the code samples. And in fact I have used the code in a big project. It runs just Okay.
Generally speaking, I will resort to Backgroundworker in the future.