本區已經依照台灣網站內容分級規定加入分級標籤,
不歡迎也禁止未滿 18 歲的人員進入本區
對多元文化的尊重, 也是對您自己, 以及您工作, 或許也包括對您親人的尊重。
如果您了解, 並可以尊重且遵守以上注意事項, 否則請您關閉並離開此板。
內容可能含有與男性間性行為有關的文字, 如果您無法接受男性間性行為, 或對男性間性行為沒有興趣, 請您選擇「離開

在遞迴時,有用到foreach

之前也習慣使用

結果看了幾篇文

平行運算 (一):Parallel.For、Parallel.Foreach 用法及技巧

平行運算 (二):PLINQ 的應用

用.NET展現多核威力(3) – 佛心TPL之Parallel.For好威

發現原來一直看到的AsParallel是多重執行緒的方式

二話不說

先把最近在玩的小程式套用一下

原本的程式:

      private TreeNode getUp(MaxiEntities db, int p, TreeNode t)
        {
            var innerlist = db.tType.Where(s => s.cUpId == p);
            if (innerlist.Count() > 0)
            {               
                foreach (var i in innerlist)
                {
                    t.Nodes.Add(getUp(db, i.cId, new TreeNode(i.cNameEn + " | " + i.cNameCn + " | " + i.cValue + " | " + i.cSort + " | " + (i.cEnable ? "啟用" : "停用")) { Tag = i.cId }));
                }
            }
            return t;
        }

修改後:

        private TreeNode getUp(MaxiEntities db, int p, TreeNode t)
        {
            db.tType.AsParallel().Where(s=>s.cUpId == p).ForAll(i =>
            {
                t.Nodes.Add(getUp(db, i.cId, new TreeNode(i.cNameEn + " | " + i.cNameCn + " | " + i.cValue + " | " + i.cSort + " | " + (i.cEnable ? "啟用" : "停用")) { Tag = i.cId }));
            });
            return t;
        }
老實說

真的少程式碼又少了一截

開心~~

, , ,

倧齊 發表在 痞客邦 PIXNET 留言(5) 人氣()


留言列表 (5)

發表留言
  • 悄悄話
  • totomo8315
  • 您好 可以加我為好友嗎 響觀賞你的相簿
  • 悄悄話
  • 悄悄話
【 X 關閉 】

【PIXNET 痞客邦】國外旅遊調查
您是我們挑選到的讀者!

填完問卷將有機會獲得心動好禮哦(注意:關閉此視窗將不再出現)

立即填寫取消