mam tę prostą metodę:Zadanie <T> kontra Asynchroniczni delegaci w C#?
static int Work (string s) { return s.Length; }
mogę uruchomić go z:
Task<string> task = Task.Factory.StartNew<int> (() => Work ("lalala"));
...
int result = task.Result;
Albo z tym:
Func<string, int> method = Work;
IAsyncResult myIasync= method.BeginInvoke ("lalala", null, null);
...
int result = method.EndInvoke (myIasync);
- Obie używają wątku puli wątków.
- Oba czekają na wykonanie, aby zakończyć (podczas odczytywania wartości)
- Oba wyrzucą każdy wyjątek do osoby dzwoniącej.
Kiedy należy używać każdego?
Zakładam, że zadanie jest lepsze, ponieważ jest nowsze, ale nie wierzę, że będzie jakakolwiek różnica w stosunku do tego małego kodu. –