Sobes.tech
Junior — Middle

Async/await istifadə edilmədikdə, vəziyyət maşını tətbiq etmək məcburidirmi?

sobes.tech Süni İntellekt

AI-dan cavab

Xeyr, C# dilində async/await istifadə edilmədikdə vəziyyət maşını (state machine) tətbiqi məcburi deyil.

Əvvəllər, async/await-in ortaya çıxmasından əvvəl, asinxron kodlar tez-tez callbacklər, hadisələr və ya mürəkkəb asinxron əməliyyatların idarə olunması üçün əl ilə vəziyyət maşınları ilə yazılırdı.

Ancaq, bu məcburi deyil — digər yanaşmalar da istifadə oluna bilər, məsələn:

  • «ContinueWith» nümunəsi ilə Task-lər (Task)
  • Asinxron proqramlaşdırma üçün kitabxanaların istifadəsi

Async/await C#-da avtomatik olaraq kompilator tərəfindən vəziyyət maşını yaradılır, bu da asinxron kod yazmağı sadələşdirir, lakin onun əl ilə tətbiqi yalnız xüsusi hallarda və ya aşağı səviyyəli API-lərlə işləyərkən zəruridir.