Wait (), eşzamansız olarak eşzamansız kod çalıştırılmasına neden olur. beklemeyeceğim.
Örneğin, bir asp.net web uygulamanız var. UserA / getUser / 1 uç noktasını çağırır. asp.net uygulama havuzu, iş parçacığı havuzundan (Thread1) bir iş parçacığı seçer ve bu iş parçacığı bir http araması yapar. Wait () yaparsanız, http çağrısı çözülene kadar bu iş parçacığı engellenir. Beklerken, UserB / getUser / 2'yi çağırırsa, http çağrısını tekrar yapmak için uygulama havuzunun başka bir iş parçacığı (Thread2) sunması gerekir. Az önce (Eh, aslında uygulama havuzundan getirildi) başka bir iş parçacığı oluşturmadınız, çünkü Thread1'i kullanamıyorsunuz, Wait () tarafından engellendi.
Thread1'de await kullanırsanız, SyncContext Thread1 ve http çağrısı arasındaki senkronizasyonu yönetir. Basitçe, http çağrısı yapıldıktan sonra bunu bildirir. Bu arada, UserB / getUser / 2'yi çağırırsa, http çağrısı yapmak için tekrar Thread1'i kullanacaksınız, çünkü bir kez vurulduktan sonra serbest bırakılmıştır. Daha sonra başka bir istek daha da fazla kullanabilir. Http çağrısı yapıldığında (user1 veya user2), Thread1 sonucu alabilir ve arayan kişiye (istemci) geri dönebilir. Thread1 çoklu görevler için kullanıldı.
Task
10 ms süren bir beklemenin aslındaTask
iplik üzerinde 10 saat sürecek ve böylece sizi 10 saat boyunca engelleyecek olsaydı nasıl istersiniz ?