我需要知道SQL Server CE是否支持多线程(使用一个连接)。
因此,如果我创建一个SQL Server CE连接,然后在两个不同的线程中使用该连接来调用对该连接的更新/插入/删除操作,SQL Server CE会对此表示“同意”吗?或者它有时会阻塞?
(我得到一个间歇性的写入错误,我不确定是因为多线程访问还是其他原因。)
发布于 2011-01-06 21:07:57
您必须为每个线程创建一个连接对象,这对于多线程是不安全的- http://msdn.microsoft.com/en-us/library/system.data.sqlserverce.sqlceconnection(v=VS.100).aspx
发布于 2011-02-03 00:49:23
是的,sqlserverce不是多线程安全的。
最好的和最懒惰的方法是每次调用插入、更新任务对对象进行锁定,执行必要的操作,然后释放该锁定。
我有一个类根据计时器(连接到交流电源线的pda)执行一些插入(在数据库中输入gps坐标),另一个计时器通过gprs将这些数据发送到via服务。最终结果: sql崩溃,原因是它不是多线程安全的。
经过研究,我发现这篇文章C Threading Sharing data across threads对我的情况很有帮助。
https://stackoverflow.com/questions/4607454
复制相似问题