Jak wyświetlić wyniki asynchroniczne, który z nich jest pierwszy w aplikacji asp.netweb?

Muszę wysłać trzy żądania asynchroniczne w trzech plikach klas, 3 czasy odpowiedzi są różne, pierwszy to 2 sekundy, a drugi to 7 sekund, a trzeci to 4 sekundy,teraz muszę wyświetlić pierwszą odpowiedź w przeglądarce za 2 sekundy, a po 2 sekundach wyświetlić trzecią odpowiedź i na koniec wyświetlić drugą odpowiedź, ale teraz moje wyniki wszystkie odpowiedzi są wyświetlane po zakończeniu trzech odpowiedzi, proszę dać mi jakieś sugestie, to jest bardzo pilne, proszę .....

mój kod jest

public delegate string AsyncMethodCaller(string name);
        public delegate string AsyncMethodCallertest(string name);
        public delegate string NatilusAsyn(string name);

zdarzenie kliknięcia przycisku

     AsyncMethodCaller caller = new AsyncMethodCaller(ps.PennStarService);
        IAsyncResult result = caller.BeginInvoke(txtFirst.Text, null, null);
    NatilusAsyn caller123 = new NatilusAsyn(cs.PennStarService);
        IAsyncResult result123 = caller123 .BeginInvoke(txtthird.Text, null, null);
        AsyncMethodCallertest cltest = new AsyncMethodCallertest(ps.testHi);
        IAsyncResult tetsresult = cltest.BeginInvoke(txtSecond.Text, null, null);
        lblFirst.Text = caller.EndInvoke(result);           
        lblSecond.Text = cltest.EndInvoke(tetsresult);
     lblthird.Text = caller123.EndInvoke(result123); 

dziękuję u hemanth