public async Task<string> GetName(int id)
{
Task<string> nameTask =
Task.Factory.StartNew(() => { return string.Format("Name matching id {0} = Developer", id); });
return nameTask.Result;
}
Nella dichiarazione di ritorno metodo sopra Sto usando la proprietà Task.Result.Qual è la differenza tra attendere l'attività <T> e l'attività <T>. Risposta?
public async Task<string> GetName(int id)
{
Task<string> nameTask =
Task.Factory.StartNew(() => { return string.Format("Name matching id {0} = Developer", id); });
return await nameTask;
}
Qui sto usando Attendere attività. Non sbaglio se penso che l'attesa rilascerà il thread chiamante ma Task.Result lo bloccherà, sarebbe giusto?
Poiché il secondo codice non ha seguito, non ottieni nulla. nel primo codice contrassegni semplicemente il metodo async ma non ti aspetti. –
Per saperne di più su async-await dare un'occhiata agli articoli su [my 'async-await'curation] (http://curah.microsoft.com/45553/asyncawait-general). –
@RoyiNamir, la tua affermazione non è corretta? Il primo metodo non guadagna nulla usando 'async' poiché il metodo blocca il thread chiamante. Tuttavia, il secondo metodo dovrebbe fornire il thread corrente e non il blocco fino a quando l'attività non viene impostata in uno stato di completamento. –