gpt4 book ai didi

c# - SQL Server CE 4.0 和频繁损坏的内存崩溃

转载 作者:太空狗 更新时间:2023-10-30 01:20:37 35 4
gpt4 key购买 nike

我有一个 WPF 应用程序,它使用 SQL Server Compact Edition 4.0 在本地计算机上存储数据。我遇到了来自 Compact Edition 4.0 数据库的随机但相当频繁的崩溃。它总是给出相同的错误....

Attempted to read or write protected memory. This is often an indication that other 
memory is corrupt.

...具有以下有限堆栈跟踪...

at System.Data.SqlServerCe.NativeMethodsHelper.SafeRelease(IntPtr& ppUnknown)
at System.Data.SqlServerCe.SqlCeCommand.ReleaseNativeInterfaces()
at System.Data.SqlServerCe.SqlCeCommand.Dispose(Boolean disposing)
at System.Data.SqlServerCe.SqlCeCommand.Finalize()

我有一个单独的线程用于所有 CE 数据库调用,因此我知道我的所有数据库调用都是序列化的(没有对数据库的并发调用),并且它们都发生在同一个线程上。当异常发生时,它总是具有上述详细信息。

它不可重现,但它经常发生,以至于我的应用程序永远不会运行超过 10 分钟。有时它会在最初几秒内崩溃,有时会在运行长达 10 分钟后崩溃,但很可能介于这两个极端之间。

我无法从谷歌搜索中找到任何有用的信息,因此希望这是其他人可能已经看到并有解决方法的问题。谢谢。

最佳答案

SqlCeConnection 和相关对象不能跨线程共享,这可能就是您面临的问题。每个线程创建一个新对象。

关于c# - SQL Server CE 4.0 和频繁损坏的内存崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18582163/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com