Avatar
Dominika Šulcová(dominiQa):

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]:

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
Redaktor
Avatar
Paradise:

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.