源码-我可以如何处理潜在竞争之间的两个单独的线访问同一个数据库?
-
21-09-2019 - |
题
问题:我可以如何处理潜在竞争之间的两个单独的线访问的同源码数据库?
背景:我有一个C#它的应用程序,使用源码通过ADO.net.我有一个backgroundworker线在它的应用程序。我们注意到,我就可以得到的一个例外时,这两个主线,以及背景的工作人员的线程,尝试更新源码数据库,即叫DBDataAdaptor.更新()..
所以我对什么感兴趣检查我的代码(尽管主要线代码和/或运行的代码,在backgroundworker)来处理这一优雅的,无论是通过方式的事先检查或阻止,直到确定,或抚养一个具体的错误我能赶上...
感谢
解决方案
在源码你可以配置一个回这就是触发当你遇到一个 SQLITE_BUSY
或 SQLITE_IOERR_BLOCKED
错误(见 http://www.sqlite.org/c3ref/busy_handler.html).
作为大多数时候是什么你想要做的就是睡觉,并重新询问在忙源码有一个建立在回调,正是这一点;读了 sqlite3_busy_timeout
在 http://www.sqlite.org/c3ref/busy_timeout.html.
不隶属于 StackOverflow