You cannot restart a thread, there is no such concept (and that's good).
You create just a new thread object and then you start it by some other thread. Since that moment, no more calls to
System.Threading.Thread.Start
should be done. Your problem is that you are trying to do this operation, which makes no sense. Instead, you have to let this thread terminate or abort it. If you still need the thread, you can create another one, using the same delegate instance as a constructor, or some other one.
The alternatives are using thread pool or
System.ComponentModel.BackgroundWorker
:
http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx[
^],
http://msdn.microsoft.com/en-us/library/vstudio/system.componentmodel.backgroundworker[
^].
—SA