Pls help . this is urgent I have put in detail. This is three layer of C# files. I have a interface method which calls the Load() method in file1.cs which inturn calls LoadFile method is file2.cs. In the LoadFile method in file2.cs , it makes a call to an "Upload" method which is part of the synchronous process. After the Upload process is over , i enable a timer which keeps on looking for a specific status from the Webservice.And only once a specific status is got, the timer will be stopped and the control should go back to the Load() method in file1.cs. But what happens is that once the upload process is over and when the timer is enabled the control goes back to the Load() method in the file1.cs file and the timer event is executed.After some number of execution of timer event , the control goes back to the interface and then comes back to the timer event again. Since this execution is through a back end scripts, the control should come back to the interface only after the entire process is over.Then the status can be checked at the interface only whether is load is in progress or not. If in progress dont do anything and if load is over stop.