I think you should not have threads in your constructor. You should consider re-factoring your code design.
However to solve your problem one thing you can do is -
Use
ManualResetEvents.
So your code would look something like this -
private static ManualResetEvent mre = new ManualResetEvent(false);
mre.Set();
class2 objClass2 = new class2(mre);
mre.WaitOne();
class3 objclass3 = new class3();
Thanks,
Pankaj Chamria