Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Dominika Šulcová(dominiQa):14.5.2014 16:22

ahoj, dělám naslouchání na serveru přes Task, ale prý se to dá udělat pomocí asnychronní metody. Bohužel netuším moc jak. Tohle mám:

public Task Prijimej()
       {
           return Task.Factory.StartNew(() =>
           {
               do
               {
                   string zprava = "";
                   while (spojeni.Client.Available > 0)//ma nejaký data k prijmutí
                   {
                       byte[] bajty = new byte[spojeni.Client.Available];//načni bajty
                       zprava = Encoding.UTF8.GetString(bajty);/
                       Application.Current.Dispatcher.Invoke(() => Zpravy.Add(zprava));//vlož do listu zpráv, a tady má být to await
                   }
               }
               while (spojeni.Connected)
           });
       }

díky za rady

Odpovědět
14.5.2014 16:22
I ♥ nutella
Avatar
Odpovídá na Dominika Šulcová(dominiQa)
Jakub Lásko[Saarix]:15.5.2014 10:30

Bude potřeba tu celou metodu dát typově jako asynchronní a pak uvnitř metody můžeš použít klíčové slovo await.

Pak se jen normálně slovíčko await napíše před "task", který se má provést asynchronně.

Nahoru Odpovědět
15.5.2014 10:30
Časem je vše možné.
Avatar
Paradise
Tvůrce
Avatar
Paradise:15.5.2014 11:09

Metodu je třeba označit klíčovým slovem async. Ten Dispatcher tam ani být nemusí, ne?

 
Nahoru Odpovědět
15.5.2014 11:09
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.