توفر الكلمات الرئيسية غير `async` / `await` في C # طرقًا مريحة لإدارة التطبيقات ذات الموارد المكثفة ، وهي أكثر شيوعًا في اللغات الأمامية مثل مكتبات جافا سكريبت. الأساليب التي ترجع يمكن أن تتوج أنواع `Task<T>` بالكلمة الرئيسية `async` ، وعند استدعاء هذه الطرق في معالج واجهة المستخدم أو سير العمل ، يمكننا استخدام `await` على الطرق لإخبار C # بإرجاع عنصر التحكم مرة أخرى إلى المتصل حتى انتهت مهمة الخلفية. ومن خلال التحكم في المكالمات ذات الموارد المكثفة ، يمكننا السماح لواجهة المستخدم بأن تكون أكثر استجابة وأن تجعل الخدمة أكثر مرونة.
جوهر `async``await` هي فئة `Task<T>` . عند استخدامه مع الكلمة الرئيسية `async` كنوع الإرجاع للطريقة ، فإننا نوضح أن الطريقة قد وعدت بإرجاع كائن من النوع `T` (للطرق التي لن تعيد أي قيمة ، استخدم `Task` كنوع الإرجاع بدلاً من ذلك) . `Task<T>` هي موضوع متطور خاص بها ، لمزيد من المعلومات ، يرجى الرجوع إلى الوثائق الرسمية: [فئة المهام](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task?view=netframework-4.7.1) .
بمجرد مواجهة أساليب `async` ، سيتم وضع العمل في قائمة الانتظار في تجمع مؤشر ترابط للتنفيذ ، بينما يستمر المتصل في تنفيذه دون انتظار قيم الإرجاع من أساليب `async` . ومع ذلك ، في معظم الحالات ، تعتمد واجهة المستخدم والخدمة على القيم التي يتم إرجاعها من أساليب `async` : على سبيل المثال ، عندما نقوم بالاستعلام عن قاعدة بيانات محلية باستخدام أساليب `async` ، فإننا نرغب في النهاية في معرفة ما هي نتائج الاستعلام والتصرف عليها ، متزامن. هذا هو المكان الذي `await` يجوز استخدام الكلمة: في حالة استخدام `await` الكلمة عند استدعاء أحد `async` طريقة، فإن المتصل وقفة التنفيذ حتى يتم إرجاع نتيجة لذلك من `async` الطريقة، ويعني في حين، وسوف تستمر في طريقة الأم التنفيذ دون انتظار المتصل للانتهاء. وقال مع ذلك، أي الأساليب التي تستخدم `await` الكلمة يجب أن تكون `async` وظيفة أنفسهم - وهذا هو المتبع من قبل C # مترجم وكذلك، إذا باستخدام Visual Studio إلى حسابك على إكبس C # رمز، فإن IDE يحذرك إذا كان الأسلوب ينتهك `async-await` العقد.
لمعرفة المزيد حول استخدام نموذج الوعد للتعامل مع عدم التزامن ، راجع صفحة ويكيبيديا: [تحقيق](https://en.wikipedia.org/wiki/Futures_and_promises) التزامن من [خلال الوعود](https://en.wikipedia.org/wiki/Futures_and_promises)