ho questo metodo semplice:Compito <T> vs delegati asincroni in C#?
static int Work (string s) { return s.Length; }
ho potuto correre con:
Task<string> task = Task.Factory.StartNew<int> (() => Work ("lalala"));
...
int result = task.Result;
O con questo:
Func<string, int> method = Work;
IAsyncResult myIasync= method.BeginInvoke ("lalala", null, null);
...
int result = method.EndInvoke (myIasync);
- entrambi utilizzano un filo di thread.
- Entrambi attendono che l'esecuzione finisca (durante la lettura del valore)
- Entrambi ripresentano qualsiasi eccezione al chiamante.
Quando dovrei usare ciascuno?
Suppongo che l'attività sia migliore dal momento che è più recente, ma non credo che ci sarà alcuna differenza con questo piccolo codice. –