Both of the following lines work same. but is there any hidden difference? and which one should be preferred?
Thread t1 = new Thread(aMethod);
Thread t2 = n
They are just the same but the second one allows you to use an extra parameter at the Thread starting method (well using ParametrizedThreadStart instead of ThreadStart).
The c# compiler will transform the
Thread t1 = new Thread(aMethod);
statement to
Thread t2 = new Thread(new ThreadStart(aMethod));
There is no difference. Both lines are equal.
A ThreadStart represents the method that executes on a Thread, so this is exactly the same thing.