Postupy: Určení režimu spouštění v PLINQ
Tento příklad ukazuje, jak vynutit na PLINQ obejití výchozí heuristiky a paralelizování dotaz bez ohledu na tvar dotazu.
Upozornění |
---|
Tento příklad je určen k prokázání využití a může běžet rychleji než ekvivalentní sekvenční LINQ dotazu objektů.Další informace o Vančurovou Principy Vančurovou v PLINQ. |
Příklad
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 je navržen tak, aby využil příležitosti pro paralelizaci. Ne všechny dotazy však mají prospěch z paralelního spuštění. Například pokud dotaz obsahuje delegát jednoho uživatel, který dělá velmi málo práce, dotaz bude obvykle běžet rychleji v sekvenčním režimu. Důvodem je, že režie spojená s povolením paralelního spuštění je větší než zrychlení, který je získáno. Proto PLINQ automaticky ne paralelizuje každý dotaz. Nejprve zkontroluje tvar dotazu a různé operátory, které ji tvoří. Na základě této analýza PLINQ v výchozí režimu spouštění může rozhodnout o provádění některých nebo všech dotazů sekvenčně. V některých případech však může vědět více o vašem dotazu než PLINQ je schopen určit ze své analýza. Například můžete vědět, že delegát je velmi náročný a dotaz bude jednoznačně profitovat z využití paralelizace. V takových případech můžete WithExecutionMode<TSource> metodou a určit ForceParallelism hodnotu pokyn PLINQ vždy spustit dotaz jako paralelní.
Probíhá kompilace kódu
Vyjměte a vložte tento kódu do PLINQ Data Sample a zavolejte metodu z Main.
Viz také
Odkaz
Koncepty
Historie změn
Datum |
Poslední dokumenty |
Důvod |
---|---|---|
Květen 2010 |
Byla přidána poznámka týkající se používání vs. Vančurovou. |
Názory zákazníků |