2013-08-31 15 views
13

Jaka jest różnica między biblioteką równoległą zadań a oczekiwaniem i asynchronizacją. Jaka była potrzeba oczekiwania i asynchronizacji? Widzę, że TPL jest częścią C# 4.0 i oczekuję/async jest częścią C# 5.0, ale poza tym, co jest podstawową różnicą. Jaka była potrzeba wprowadzenia tego nowego słowa kluczowego?Różnica między biblioteką oczekującą a asynchroniczną i biblioteką zadań Zadanie

+0

Klucz dotyczy komponowania. – Diryboy

+0

http://blogs.msdn.com/b/ericlippert/archive/2010/10/28/asynchrony-in-c-5-part-one.aspx – I4V

+1

Licencja TPL została wydana w tym samym czasie co C# 4.0, ale jest nie jest częścią tego, jest częścią .Net 4.0. W C# 4.0 nie ma nic związanego z TPL. – svick

Odpowiedz

24

Biblioteka zadań została zaprojektowana pod kątem parallel programming - kiedy masz dużo pracy do wykonania i chcesz podzielić tę pracę między wiele wątków, możesz użyć wszystkich rdzeni procesora. TPL najlepiej nadaje się do prac wymagających dużej mocy obliczeniowej.

Asynchronizacja i oczekiwanie są dla asynchronous programming - kiedy masz operację (lub wiele operacji), która zakończy się w przyszłości, i chcesz zrobić w międzyczasie inne rzeczy. Async najlepiej nadaje się do pracy związanej z I/O.

Występuje pewne pokrywanie się. Na przykład można traktować obliczenia równoległe jako operacje asynchroniczne, aby nie wiązać wątku interfejsu użytkownika. Ponadto zarówno TPL, jak i async/await używają typu Task, chociaż używają go na różne sposoby.

Powiązane problemy