Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
260 views
in Technique[技术] by (71.8m points)

c# - System.Timers.Timer - Preventing high memory usage

I'm writing a program which connect SQL Server and getting value every x second. I'm using Timers.Timer for this job. However, I notice that in the task manager, it is slowly eating up more memory as time goes by. I've research about Threading.Timer, thread Ttmeout, thread lock and etc. but I can not find the problem in my code.

class Program
{
    static System.Timers.Timer DiskControlTimer
        = new System.Timers.Timer(100) { AutoReset = true };

    static void Main(string[] args)
    {
        DiskControlTimer.Elapsed +=
            new System.Timers.ElapsedEventHandler(MailServiceControlTimerMethod);
        GC.KeepAlive(DiskControlTimer);
        DiskControlTimer.Start();

        Console.ReadKey();
    }

    static void MailServiceControlTimerMethod(object sender,
        System.Timers.ElapsedEventArgs e)
    {
        Test();
    }

    static void Test()
    {
        try
        {
            using (var conn = new SqlConnection("Data Source=.;" +
                "Initial Catalog=DATABASE;Persist Security Info=True;" +
                "User ID=sa;Password=ABCABC"))
            using (var cmd = new SqlCommand("SELECT * FROM VERSION", conn))
            {
                conn.Open();
                string Response = cmd.ExecuteScalar().ToString();
                if (Response != "")
                    Console.Write("Success");
                else
                    Console.Write("Failed");
            }
        }
        catch (Exception ex)
        {
            Console.Write(ex.Message.ToString());
        }
    }
}

I'm pretty sure the leak is either coming from my timer function. Anyone have any ideas?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...