Como exibir os resultados assíncronos qual deles é o primeiro no aplicativo asp.netweb?

Eu tenho que enviar três pedidos assíncronos em três arquivos de classe, 3 pedidos de tempos de resposta são diferentes, primeiro é 2 segundos e um segundo é 7 segundos e o terceiro é 4 segundos,agora eu tenho que exibir a primeira resposta no navegador com 2seg e depois de 2sec exibir a terceira resposta e finalmente exibir a segunda resposta, mas agora meus resultados todas as respostas são exibidas de cada vez após completar três respostas, por favor me dê alguma sugestão, é muito urgente, por favor .....

meu código é

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

botão clique em evento

     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); 

obrigado hemanth