duvida async/task

10 views
Skip to first unread message

Cristovão Morgado

unread,
May 9, 2013, 3:54:30 PM5/9/13
to netp...@googlegroups.com
Viva!

Tenho isto assim: 

    await SearchDevices();
    await SearchGuides();
    await SearchProduct();

Ora até funciona mas cada pedido tem de esperar pelo anterior para começar...
Como é que fariam para executar os 3 simultaneamente? vejo muita coisa no google mas poucas que me convencem que são as correctas...


--
Cristovao Morgado
@TheSaintr

Pedro Lamas

unread,
May 9, 2013, 4:05:56 PM5/9/13
to netp...@googlegroups.com

Isto vai um bocado de memória, mas é algo deste género:

await Task.WaitAll(SearchDevices, SearchGuides, SearchProduct)

------------------------------------------------------------
Pedro Lamas


2013/5/9 Cristovão Morgado <cristova...@gmail.com>

--
--
Você recebeu esta mensagem por fazer parte da lista de discussão oficial da Comunidade NetPonto (http://netponto.org).
 
---
Recebeu esta mensagem porque está inscrito no grupo "NetPonto.org - Lista de Discussao Oficial" dos Grupos do Google.
 
Para anular a subscrição deste grupo e parar de receber emails deste grupo, envie um email para netponto+u...@googlegroups.com.
Para mais opções, consulte https://groups.google.com/groups/opt_out.
 
 

Carlos Souto

unread,
May 9, 2013, 4:21:17 PM5/9/13
to netp...@googlegroups.com
Boas!

Está perto, sim. :)

http://msdn.microsoft.com/en-us/library/dd270695.aspx




From: pedro...@gmail.com
Date: Thu, 9 May 2013 21:05:56 +0100
Subject: Re: [NetPonto] duvida async/task
To: netp...@googlegroups.com

Cristovão Morgado

unread,
May 9, 2013, 5:10:50 PM5/9/13
to netp...@googlegroups.com
Nops ... não faz nada..

     Task[] tasks = new Task[3];
                             //await SearchDevices();
                             //await SearchGuides();
                             //await SearchProduct();
                             tasks[0] = SearchDevices();
                             tasks[1] = SearchGuides();
                             tasks[2] = SearchProduct();
 
                             try
                             {
                                 Task.WaitAll(tasks);
                             }
                             catch (Exception ex)
                             {
                                 
                                 throw ex;
                             }


2013/5/9 Carlos Souto <site...@hotmail.com>



--
Cristovao Morgado
@TheSaintr

Cristovão Morgado

unread,
May 9, 2013, 5:23:01 PM5/9/13
to netp...@googlegroups.com
Resolvido...

  Task[] tasks = new Task
[3];
                             tasks[0] = SearchDevices();
                             tasks[1] = SearchGuides();
                             tasks[2] = SearchProduct();
 
                             try
                             {
                                await Task.WhenAll(tasks);
                             }
                             catch (Exception ex)
                             {
                                 
                                 throw ex;
                             }


2013/5/9 Cristovão Morgado <cristova...@gmail.com>



--
Cristovao Morgado
@TheSaintr

Carlos Souto

unread,
May 9, 2013, 6:13:16 PM5/9/13
to netp...@googlegroups.com
Mais clean ainda :)

            var tasks = new[]
                {
                    Task.Factory.StartNew(SearchDevices()), 
                    Task.Factory.StartNew(SearchGuides()), 
                    Task.Factory.StartNew(SearchProducts())
                };
Ou

            Task[] tasks = new[]
                {
                    Task.Factory.StartNew(SearchDevices()), 
                    Task.Factory.StartNew(SearchGuides()), 
                    Task.Factory.StartNew(SearchProducts())
                };


From: cristova...@gmail.com
Date: Thu, 9 May 2013 22:23:01 +0100
Reply all
Reply to author
Forward
0 new messages