استدعاء طريقة غير متزامن

مؤلف: Lewis Jackson
تاريخ الخلق: 8 قد 2021
تاريخ التحديث: 10 قد 2024
Anonim
Mocking Asynchronous Functions with Jest
فيديو: Mocking Asynchronous Functions with Jest

المحتوى

التعريف - ماذا تعني طريقة الاتصال غير المتزامن؟

استدعاء الأسلوب غير المتزامن هو طريقة مستخدمة في برمجة .NET والتي تعود إلى المتصل مباشرة قبل إتمام معالجتها ودون حظر مؤشر ترابط الاستدعاء.

عندما يستدعي أحد التطبيقات طريقة غير متزامنة ، يمكن تنفيذه في نفس الوقت مع تنفيذ الطريقة غير المتزامنة التي تؤدي مهمته. يعمل أسلوب غير متزامن في مؤشر ترابط منفصلة عن مؤشر ترابط التطبيق الرئيسي. يتم جلب نتائج المعالجة من خلال مكالمة أخرى على مؤشر ترابط آخر.

تساعد الأساليب غير المتزامنة على تحسين تنفيذ الموارد مما يؤدي إلى تطبيق قابل للتطوير. يتم استخدام هذه لتنفيذ المهام المستهلكة للوقت مثل فتح الملفات الكبيرة والاتصال بأجهزة الكمبيوتر البعيدة والاستعلام عن قاعدة البيانات واستدعاء خدمات الويب ونماذج ASP.NET على الويب.

استدعاء الأسلوب غير المتزامن قد يشار إليه أيضًا باسم استدعاء الأسلوب غير المتزامن (AMI).


مقدمة إلى Microsoft Azure و Microsoft Cloud | من خلال هذا الدليل ، سوف تتعرف على الحوسبة السحابية التي تدور حولها وكيف يمكن أن يساعدك Microsoft Azure على ترحيل عملك وإدارته من السحابة.

تشرح Techopedia استدعاء الأسلوب غير المتزامن

تختلف الطريقة غير المتزامنة عن الطريقة المتزامنة في الطريقة التي تُرجع بها من الاستدعاء. في حين أن استدعاء الأسلوب غير المتزامن يعود على الفور ، مما يسمح لبرنامج الاستدعاء بإجراء عمليات أخرى ، تنتظر استدعاءات الطريقة المتزامنة لإكمال الطريقة قبل المتابعة مع تدفق البرنامج.

يحتوي .NET Framework على بنية تحتية غير متزامنة يحمل في ثناياه عوامل بحيث يمكن استدعاء أي طريقة بشكل غير متزامن دون تغيير التعليمات البرمجية الخاصة به.

يوفر .NET Framework نموذجين للتصميم لتطبيق الأسلوب غير المتزامن ، وهما تلك التي تستخدم المفوضين غير المتزامنين (كائنات IASyncResult) والأحداث. نمط المندوبين غير المتزامنين أكثر تعقيدًا ويوفر مرونة ، مما يجعله مناسبًا تمامًا لمختلف نماذج البرمجة المعقدة. النموذج القائم على الأحداث بسيط ويجب استخدامه في معظم الحالات.

في نموذج المفوضين غير المتزامن ، يستخدم كائن المفوض طريقتين: BeginInvoke و EndInvoke. يحتوي BeginInvoke على قائمة بالمعلمات ، التي تشبه الوظيفة الملتفة ، إلى جانب معلمتين إختياريتين إضافيتين ؛ تقوم بإرجاع كائن IAsyncResult. تقوم دالة EndInvoke بإرجاع معلمتين (للخارج ونوع المرجع) مع كائن IAsyncResult. يُستخدم BeginInvoke لبدء المكالمة غير المتزامنة ، بينما يُستخدم EndInvoke لاسترداد نتائج الاستدعاء غير المتزامن.

تستخدم الأنماط غير المتزامنة المستندة إلى الأحداث فئة تحتوي على واحد أو أكثر من الطرق ، المسمى MethodNameAsync ، والتي لها إصدارات متزامنة مقابلة تنفذ على سلسلة الرسائل الحالية. قد يكون للنماذج المستندة إلى الأحداث أيضًا حدث MethodNameCompleted وطريقة MethodNameAsyncCancel. يتيح هذا النمط للفئة التواصل مع العمليات غير المتزامنة المعلقة باستخدام نموذج حدث المفوض.

فيما يلي بعض النصائح المتعلقة بالطرق غير المتزامنة:


  • من أجل التزامن العالي ، يجب تجنب الطرق غير المتزامنة
  • يجب توخي الحذر أثناء تمرير مراجع الكائنات المشتركة
  • يجب استدعاء EndXXX (تسمى في نهاية عملية غير متزامنة) لإعادة طرح الاستثناءات وتجنب الفشل
  • عن طريق التقاط وحفظ جميع كائنات الاستثناء بطريقة غير متزامنة ، يمكن إعادة اكتشافه أثناء استدعاء EndXXX
  • يجب تعطيل عناصر التحكم في واجهة المستخدم التي تبدأ عمليات غير متزامنة طويلة الأمد إذا كانت مطلوبة فقط لهذا الغرض
  • يجب أن يتم تنفيذ الطرق غير المتزامنة مع فهم تعدد مؤشرات الترابط وحيث أثبتت أنها أكثر فاعلية من استخدام الأساليب المتزامنة.