C 並行程式設計 PLINQ

2022-08-05 15:21:18 字數 1405 閱讀 5257

實列:console.writeline("hello world!");

console.writeline("當前計算機處理器數:", environment.processorcount);

concurrentqueueproducts = new concurrentqueue();

/*向集合中新增多條資料 可以修改資料量檢視linq和plinq的效能*/

parallel.for(0, 60000000, (num) =>

);});

/*採用linq查詢符合條件的資料*/

stopwatch sw = new stopwatch();

sw.restart();

var productlistlinq = from product in products

where (product.name.contains("1") && product.name.contains("2") && product.category.contains("1") && product.category.contains("2"))

select product;

console.writeline("採用linq 查詢得出數量為:", productlistlinq.count());

sw.stop();

console.writeline("採用linq 耗時:", sw.elapsedmilliseconds);

console.writeline(datetime.now);

/*採用plinq查詢符合條件的資料*/

sw.restart();

var productlistplinq = from product in products.asparallel() /*asparallel 試圖利用執行時所有可用的邏輯核心,從而使執行的速度比序列的版本要快 但是需要注意開銷所帶來的效能損耗*/

where (product.name.contains("1") && product.name.contains("2") && product.category.contains("1") && product.category.contains("2"))

select product;

console.writeline("採用plinq 查詢得出數量為:", productlistplinq.count());

sw.stop();

console.writeline(datetime.now);

console.writeline("採用plinq 耗時:", sw.elapsedmilliseconds);

console.readline();