مشاركة عبر


كيفية القيام بما يلي: قم بتحديد "الوضع" تنفيذ "في PLINQ

يوضح هذا المثال كيفية إلى فرض PLINQ إلى تجاوز heuristics الافتراضي الخاص به و parallelize استعلام بغض النظر عن شكل الاستعلام.

مثال

Private Shared Sub ForceParallel()
    Dim customers = GetCustomers()
    Dim parallelQuery = (From cust In customers.AsParallel().WithExecutionMode(ParallelExecutionMode.ForceParallelism) _
        Where cust.City = "Berlin" _
        Select cust.CustomerName).ToList()
End Sub
// Paste into PLINQDataSample class.
static void ForceParallel()
{
    var customers = GetCustomers();
    var parallelQuery = (from cust in customers.AsParallel()
                            .WithExecutionMode(ParallelExecutionMode.ForceParallelism)
                         where cust.City == "Berlin"
                         select cust.CustomerName)
                        .ToList();
}

PLINQ هو تم تصميمها لاستغلال فرص ل parallelization. على الرغم من ذلك، لا الجميع الاستعلامات تستفيد من التنفيذ المتوازي. على سبيل المثال، عندما يحتوي استعلام على تفويض مستخدم مفرد بقدر العمل، الاستعلام عادة ستعمل أسرع بشكل تسلسلي. هذا بسبب مقدار الحمل المتضمنة في تمكين تنفيذ parallelizing أكثر تكلفة من زيادةالسرعة يتم الحصول عليها. ولذلك، PLINQ لا تلقائياً parallelize كل استعلام. ويفحص أولاً شكل الاستعلام والعوامل المختلفة التي تتألف من ". واستنادا إلى هذا التحليل، قد تقرر PLINQ في الوضع الافتراضي لينفذ إلى ينفذ بعض أو كل الاستعلام بشكل تسلسلي. ومع ذلك، في بعض الحالات قد تعرف المزيد عن الاستعلام الخاص بك من PLINQ هو قادراً على تحديد من له analys هو. على سبيل المثال، قد تعرف الذي مفوض هو مكلفة جداً، ولقد سوف يستفيد الاستعلام من parallelization. In such cases, you can use the ParallelEnumerableWithQueryExecutionMode() method and specify the ParallelQueryExecutionMode ForceParallelism value to instruct PLINQ to always run the query as parallel.

التحويل البرمجي للتعليمات البرمجية

قص ولصق هذا تعليمات برمجية في نموذج بيانات PLINQواستدعاء الأسلوب من Main.

راجع أيضًا:

المبادئ

متوازى LINQ (PLINQ)