日期:2014-05-17  浏览次数:20579 次

asp.net下使用多线程多么?
有这样一个需求:

一些用户会执行一个这样的操作,点击某个按钮或链接后,往数据库里插入200到几千条数据不等。

但是由于插入数据库这些操作耗时,所以打算另开一个线程操作。这个线程就是在按钮的事件里另开的。

如果其他用户也在进行这样的操作时,同样会去开一个线程。

但是,不知道怎么回事,如果第一个用户开了个线程开始插入数据库记录,此时,第二个用户也开始执行此操作并插入数据库

记录,最终导致第二个用户要插入数据库的记录全部插入,而第一个用户的只插入部分。


很是疑惑~~ 为什么呢?

还有,就是有没有什么方法确保第一个用户插入数据库的记录全部完成后,第二个再开始呢?


------解决方案--------------------
用存储过程不行吗,打开事务,如果前面的插入失败则回滚事务,全部插入成功提交事务。
------解决方案--------------------
探讨

关键不是用存储过程还是直接写sqL语句插入。
主要是想实现在后台进行数据库的插入操作,而用户还可以做其他的事情。

------解决方案--------------------
建议使用异步,ajax或者async都可以。

在asp.net下,最好不用多线程。因为是多用户并行的,很可能出错,而出错很难调试。