[问题] Parallel.ForEach平行处理

楼主: wind681201 (阿风~~)   2020-04-01 21:57:49
各位大大:
今天用平行处理,发生了很奇怪的事,我有一个funcation a()里面只有一行,
就是用dapper 去数据库抓资料,
conn.query(sql);
而conn, 在初始化时,已经建立好,所以想说共用就好。
然后在另一个funcation B()呼叫了a()。
是用Parallel.ForEach,重点来了,我用一般的foreach去跑,很正常。但用平行去跑
却会在某几笔资料发生奇怪的错误,其中让我不解的是,conn居然会close。
请问用平行执行,需要注意什么地方吗?
作者: luiGiF (luiGif)   2020-04-01 23:12:00
有使用static吗 ?
楼主: wind681201 (阿风~~)   2020-04-02 08:11:00
完全没有
作者: GoodFriday (好星期五)   2020-04-02 22:21:00
数据库连线没有 Thread Safe 所以不能共用
作者: ssccg (23)   2020-04-03 23:25:00
基本上数据库连线通常每个thread要自己一个数据库的session/transaction管理都是以连线为单位
楼主: wind681201 (阿风~~)   2020-04-05 13:07:00
谢谢各位,我再试看看

Links booklink

Contact Us: admin [ a t ] ucptt.com