在C#应用程序ODBC内存泄漏(ODBC leaking memory in c# applicat

2019-10-31 02:41发布

我似乎有内存泄漏。 我发现计算器建议“使用”的方法后,但这似乎并没有解决问题。

我使用红门内存分析器,显示增加非托管内存不断上升。

这是一个简单的应用程序,我测试做:

namespace TimerDebug
{
public partial class TimerDebug : ServiceBase
{
    public TimerDebug()
    {
        InitializeComponent();
    }

    protected override void OnStart(string[] args)
    {
         // Create Timer
        Timer MyTimer = new Timer(500);
        MyTimer.Elapsed += MyTimer_Elapsed;

        // Start Timer
        MyTimer.Start();

    }

    void MyTimer_Elapsed(object sender, ElapsedEventArgs e)
    {
        using (var C = new OdbcConnection("Dsn=MyFireReport;"))
        {

            C.Open();

        }

        OdbcConnection.ReleaseObjectPool();
    }

    protected override void OnStop()
    {
    }
}
}

是否有人知道如何解决这一问题? 谢谢。

Answer 1:

OdbcConnection.ReleaseObjectPool(); 就是这个原因。 我有一些严重的问题,不断增加句柄和内存泄漏造成的DEP关机我的软件。 同样的问题可以在SQLCLIENT模拟观察,甚至关闭或处置使用此语句之前的连接并没有帮助。

我已经离开了OdbcConnection.ReleaseObjectPool(); 在我的处境案件摧毁连接到Oracle服务器,只用于关键。

目前我已删除了这些,软件现在是一个多星期的工作稳定。



文章来源: ODBC leaking memory in c# application