看板 C_Sharp 關於我們 聯絡資訊
各位大大: 今天用平行處理,發生了很奇怪的事,我有一個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