Most of you will find this relatively simple, but it took me a while to figure this out. When executing a method on a new thread, I found it almost impossible to pass the method any parameters. My code looked like below.
Method Signature to be Executed on Thread:
Thread t = new Thread(new ThreadStart(MyMethod));
This would fail compilation because MyMethod expects a string parameter. Enter the ParameterizedThreadStart delegate.
New Thread Creation:
Thread t = new Thread(new ParameterizedThreadStart(MyMethod));
Thing to note here is that the method being used in this fashion needs to be passed an object.