当前位置:编程学习 > C#/ASP.NET >>

C#编写WIn服务的问题

用System.Timers.Timer控制方法,当数据库的数据不为0时,方法执行正常。但是当数据库的数据等于0时,Win服务状态为“以启动”,但是当数据库的数据再增加的时候,方法不执行。
有遇到过类似问题的吗?
            if (tmrTimer == null)
            {
                tmrTimer = new System.Timers.Timer();
                tmrTimer.Elapsed += new System.Timers.ElapsedEventHandler(UpCar);
                tmrTimer.Interval = 200;
                tmrTimer.Enabled = true;
            }
            else
            {
                tmrTimer.Start();
            } --------------------编程问答-------------------- 设断点进行单步调试。 --------------------编程问答-------------------- 服务也可以设置断点?怎么设置呀? --------------------编程问答-------------------- --------------------编程问答-------------------- 怎么说呢,这个问题很少见,我都郁闷了..............实在是不知道从哪下手了... --------------------编程问答-------------------- 唉,服务状态虽然不能调试,但是你可以修改一下program,改成控制台应用,直接调用start方法不就可以了吗?

    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        static void Main()
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 

// new ... 
};
            你的服务 serv = new 你的服务();
            serv.调试函数();
            ServiceBase.Run(ServicesToRun);
        }
--------------------编程问答-------------------- 哦嘿嘿谢谢,我没那么用过。我就是一个新手,嘎嘎。。。。。 --------------------编程问答-------------------- 还是想不通,唉~~~~~~ --------------------编程问答-------------------- 设置断点,附加到进程 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 呵呵,谢谢大家。现在我就是想不通,为什么有数据的时候好用,当数据库数据为0,再加数据就不好用了呢?
--------------------编程问答-------------------- tmrTimer的对象new的时间不对吧?

如果tmrTimer为null,由于对象没被new,调用不到start()方法吧?

另外timer的autoreset属性设为true试试呢?


还有最重要的就是,一定要像yanran_hill说的那样,改改代码,在控制台里调试一下,不然哪里出错都不知道。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,