The synchronization of two methods problem

I have a relatively small (I hope) problem…

**public mainFunction()
{
this.method1();
this.method2();
} **

The question: how can I synchronize these two method such that, the method2 is being executed only when method1 is finished. And the end of method1 depends on a user event (so it is undefined)?

I hope somebody can help me…