Is there any difference(performance, implementation. .whatever) between the following:
i)
DllImport("kernel32.dll")]
public extern static void Sleep(uint msec);
..then call Sleep function
ii)
Thread.Sleep()
There's a big difference, actually.
This blog post explains why managed threads should never do unmanaged blocking, if possible. The official MSDN documentation has the same guideline without all the underlying details.