لا يعمل رونكونتينواتيونساسينتشرونوسلي الاستمرار بشكل غير متزامن

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

اضغط هنا لرابط المقالة باللغة الانجليزية3118695
الأعراض
إضافة 4.6. NET Framework قيمة نوع تعداد جديد، رونكونتينواتيونساسينتشرونوسلي، التعدادات تاسككومبليتيونسورسي و تاسككريتيونوبشنز. تفرض هذه القيمة المهام ليتم تشغيلها بشكل متزامن، وهذا يساعد على تجنب المواقف حالة توقف تام. ومع ذلك، تم اكتشاف مشكلة حيث يتم فيه تجاهل الخيار لبعض أنواع معينة من الاستمرار (وبخاصة عند الاستمرار في إنشاءTask.WhenAllأو Task.WhenAnyأو TaskExtensions.Unwrap). لذلك، قد تعمل الاستمرار لا يزال بشكل متزامن.

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

using System;using System.Threading;using System.Threading.Tasks; class Program{    static void Main()    {        var mres = new ManualResetEventSlim();         Console.WriteLine(Environment.CurrentManagedThreadId);         var tcs = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);         var t = Task.WhenAll(tcs.Task);         t.ContinueWith(delegate        {            Console.WriteLine(Environment.CurrentManagedThreadId);            mres.Set();        }, TaskContinuationOptions.ExecuteSynchronously);         tcs.SetResult(true);        mres.Wait();    }}

الحل
لا يوجد حاليا أي حل هذه المشكلة. يعمل فريق Microsoft net Framework على إيجاد حل لتضمين في تحديثات مستقبلية.


تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 3118695 - آخر مراجعة: 11/24/2015 18:11:00 - المراجعة: 1.0

Microsoft .NET Framework 4.6.1

  • kbsurveynew kbexpertiseadvanced kbtshoot kbmt KB3118695 KbMtar
تعليقات