Correcting your spelling and other syntax errors (in future, copy and paste your code - it makes it easier for everybody):
class SampleClass
{
public static void Main()
{
Thread t1 = new Thread(SampleClass.StaticMethod1);
t1.Start();
Thread t2 = new Thread(SampleClass.StaticMethod2);
t2.Start();
t1.Join();
t2.Join();
Console.WriteLine("Main method Completed");
Console.ReadLine();
}
public static void StaticMethod1()
{
Thread.Sleep(10000);
Console.WriteLine("StaticMethod1 Completed");
}
public static void StaticMethod2()
{
Console.WriteLine("StaticMethod2 Completed");
}
}
I get the following:
StaticMethod2 Completed
The thread 0x70c has exited with code 259 (0x103).
StaticMethod1 Completed
The thread 0x36c0 has exited with code 259 (0x103).
Main method Completed
Which is exactly what I expect.
I'd check your actual code, and compare it to what is above. If it's the same, then copy and paste it and the results so we can see exactly what you are experiencing.