源码-我可以如何处理潜在竞争之间的两个单独的线访问同一个数据库?

StackOverflow https://stackoverflow.com/questions/2490432

  •  21-09-2019
  •  | 
  •  

问题:我可以如何处理潜在竞争之间的两个单独的线访问的同源码数据库?

背景:我有一个C#它的应用程序,使用源码通过ADO.net.我有一个backgroundworker线在它的应用程序。我们注意到,我就可以得到的一个例外时,这两个主线,以及背景的工作人员的线程,尝试更新源码数据库,即叫DBDataAdaptor.更新()..

所以我对什么感兴趣检查我的代码(尽管主要线代码和/或运行的代码,在backgroundworker)来处理这一优雅的,无论是通过方式的事先检查或阻止,直到确定,或抚养一个具体的错误我能赶上...

感谢

有帮助吗?

解决方案

在源码你可以配置一个回这就是触发当你遇到一个 SQLITE_BUSYSQLITE_IOERR_BLOCKED 错误(见 http://www.sqlite.org/c3ref/busy_handler.html).

作为大多数时候是什么你想要做的就是睡觉,并重新询问在忙源码有一个建立在回调,正是这一点;读了 sqlite3_busy_timeouthttp://www.sqlite.org/c3ref/busy_timeout.html.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top