作者wind681201 (阿風~~)
看板C_Sharp
標題[問題] Parallel.ForEach平行處理
時間Wed Apr 1 21:57:49 2020
各位大大:
今天用平行處理,發生了很奇怪的事,我有一個funcation a()裡面只有一行,
就是用dapper 去資料庫抓資料,
conn.query(sql);
而conn, 在初始化時,已經建立好,所以想說共用就好。
然後在另一個funcation B()呼叫了a()。
是用Parallel.ForEach,重點來了,我用一般的foreach去跑,很正常。但用平行去跑
卻會在某幾筆資料發生奇怪的錯誤,其中讓我不解的是,conn居然會close。
請問用平行執行,需要注意什麼地方嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.183.119.191 (泰國)
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1585749473.A.D2B.html
→ luiGiF: 有使用static嗎 ? 04/01 23:12
→ wind681201: 完全沒有 04/02 08:11
→ GoodFriday: 資料庫連線沒有 Thread Safe 所以不能共用 04/02 22:21
→ ssccg: 基本上資料庫連線通常每個thread要自己一個 04/03 23:25
→ ssccg: 資料庫的session/transaction管理都是以連線為單位 04/03 23:25
→ wind681201: 謝謝各位,我再試看看 04/05 13:07