Sql Server CE 是不是支持多线程?
Posted
技术标签:
【中文标题】Sql Server CE 是不是支持多线程?【英文标题】:Does Sql Server CE support Multithreading?Sql Server CE 是否支持多线程? 【发布时间】:2011-01-05 17:56:40 【问题描述】:我需要知道 SQL Server CE 是否支持多线程(使用一个连接)。
因此,如果我创建一个 SQL Server CE 连接,然后在两个不同的线程中使用该连接来调用该连接的更新/插入/删除,SQL Server CE 会对此“正常”还是有时会阻塞?
(我收到间歇性写入错误,我不确定是因为多线程访问还是其他原因。)
【问题讨论】:
我不知道,但我猜不会。 【参考方案1】:你必须为每个线程创建一个连接对象,多线程是不安全的 - http://msdn.microsoft.com/en-us/library/system.data.sqlserverce.sqlceconnection(v=VS.100).aspx
【讨论】:
【参考方案2】:是的,sqlserverce 不是多线程安全的。
最好的也是最懒惰的方法是每次调用插入、更新任务对对象进行锁定,进行必要的操作,然后释放该锁定。
我有一个类根据计时器、事件(pda 连接到交流电源线)和另一个计时器进行一些插入(在数据库中输入 gps 坐标),以通过 gprs 将这些数据发送到 web 服务。最终结果:sql 崩溃了,原因是它不是多线程安全的。
经过一番研究,发现这篇文章 C Threading Sharing data across threads 对我的情况有所帮助。
【讨论】:
以上是关于Sql Server CE 是不是支持多线程?的主要内容,如果未能解决你的问题,请参考以下文章
Windows 8 桌面应用程序(不是 Metro 或 Store 应用程序)是不是支持 SQL Server CE 3.5?
写出java多线程程序设计中常用类及方法名,并分别说明它们的作用。