Bilgisayar bilimi açısından, a Taskbir gelecek ya da bir vaattir . (Bazı insanlar bu iki terimi eşzamanlı olarak kullanır, bazıları farklı kullanır, kimse kesin bir tanım üzerinde anlaşamaz .) Temel olarak, Task<T>size geri dönme sözü verir T, ama şu anda değil tatlım, neden biraz meşgulüm sonra geri mi geleceksin?
A Threadbu sözü yerine getirmenin bir yoludur. Ancak her Taskbirinin yepyeni bir şeye ihtiyacı yoktur Thread. (Aslında, bir iş parçacığı oluşturmak genellikle istenmeyen bir durumdur, çünkü bunu yapmak iş parçacığındaki mevcut bir iş parçacığını yeniden kullanmaktan çok daha pahalıdır. Bir an için daha fazlası.) Beklediğiniz değer dosya sisteminden veya veritabanına veya ağa bağlanırsa, bir iş parçacığının oturup diğer isteklere hizmet edebileceği durumlarda verileri beklemesine gerek kalmaz. Bunun yerine, Taskhazır olduklarında değerleri almak için bir geri arama kaydedebilir.
Özellikle, Taskyok değil demek niye buna değer döndürmek için bu kadar uzun bir zaman almasıdır. Bu belki de hesaplamak için uzun bir zaman alır olmayabilir ya buna getirmek için uzun zaman alır olabilir. Yalnızca önceki durumda a'yı Threadçalıştırmak için a kullanırsınız Task. (.NET'te, iş parçacıkları pahalıdır, bu nedenle genellikle mümkün olduğunca kaçınmak ve bunları yalnızca birden çok CPU'da birden fazla ağır hesaplama çalıştırmak istiyorsanız kullanın. Örneğin, Windows'ta bir iş parçacığı 12 KiByte ( Sanırım), Linux'ta bir iplik 4 KiByte kadar ağır, Erlang / BEAM'de sadece 400 Byte bile. .NET'te 1 MiByte!)